Method and system for fast reprojection

ABSTRACT

Methods and systems for computed tomography provide advances in efficiency. The methods operating within the parallel-beam geometry, rather than a divergent beam geometry, for the majority of the operations. In back projection methods perform digital image coordinate transformations on selected intermediate-images, the parameters of one or more coordinate transformations being chosen such that Fourier spectral support of the intermediate-image is modified so that a region of interest has an increased extent along one or more coordinate direction and the aggregates of the intermediate-images can be represented with a desired accuracy by sparse samples. Forward projection methods perform digital image coordinate transformations on an input image to produce multiple intermediate-images, the parameters of one or more coordinate transformations being chosen such that Fourier spectral support of an intermediate-image being produced is modified so that a region of interest has a reduced extent along one or more coordinate direction and the intermediate-images can be represented with a desired accuracy by sparse samples

PRIORITY CLAIM AND REFERENCE TO RELATED APPLICATION

The application claims priority under 35 U.S.C. § 119 from prior provisional application Ser. No. 62/767,637, which was filed Nov. 15, 2018.

STATEMENT OF GOVERNMENT INTEREST

This invention was made with government support under R44EB014669 awarded by National Institutes of Health, National Center for Advancing Translational Sciences (NCATS) and National Institute of Biomedical Imaging and Bioengineering (NIBIB). The government has certain rights in the invention.

FIELD OF THE INVENTION

The present invention relates to computed tomographic imaging. The invention is applicable to various computed tomography techniques, including, for example, X-ray Computed Tomography (CT), single photon emission computed tomography (SPECT), positron emission tomography (PET), synchrotron radiation tomography, certain modes of magnetic resonance imaging (MRI), ultrasound tomography, optical tomography, synthetic aperture radar, and other tomographic imaging modalities. The invention described here is a method and system for use in the reconstruction of images from tomographic data.

Methods and systems of the invention provide the ability determine the forward projection (also known as reprojection, or X-ray transform) of a digital (discrete) image in a variety of imaging geometries, including parallel-beam, fan-beam, 3D cone-beam, and 3D helical (spiral) cone-beam. Methods and systems of the invention can also be used to determine the adjoint operation of forward projection, that is, backprojection, in the same imaging geometries.

The invention is a family of fast algorithms for the backprojection of images from tomographic projections or the reprojection of images to produce tomographic projections, which alone or in combination are key components in tomographic image formation. Backprojection can be used directly for the reconstruction of an image from projections such as in the filtered backprojection method. Alternatively backprojection and reprojection can be used in a loop or repeatedly for the iterative or deep-learning-based reconstruction of images from tomographic projections. Reprojection can also be used in processes of correction or mitigation of image artifacts, such those due to as beam hardening, scatter, misalignment, etc.

The invention improves on the methods and systems for performing the backprojection and reprojection computational operations, in computational requirements, namely by providing higher speed and/or reduced memory requirements, or improved accuracy, or combination thereof.

BACKGROUND OF THE INVENTION

Computed tomography techniques including X-ray Computed Tomography (CT), single photon emission computed tomography (SPECT), positron emission tomography (PET), synchrotron radiation, etc. are well-established imaging modalities. Systems using these imaging modalities (referred to as tomographic imaging systems) are used in applications such as medical, biomedical, security, and industrial, with the scanned objects being patients, small animals, material or tissue samples, pieces of luggage, or manufactured parts.

A computational process that is commonly used in tomographic imaging systems is reprojection, which, for a given two-dimension (2D) or three dimensional (3D) image, produces a set of numbers known as projections, which are closely related to the set of measurements that would be measured by a detector array in a tomographic system. Another commonly used computational process is backprojection, which is the adjoint or transpose of reprojection, and which, for a given set of projections or pre-processed projections, creates a corresponding image.

The accuracy with which the operations of reprojection and backprojection are performed affects the quality of images produced by tomographic imaging systems. Also, reprojection and backprojection are some of the most computationally demanding operations in tomographic imaging systems. For these reasons, much effort has been devoted to the development of reprojection and backprojection methods that are both accurate and computationally efficient when implemented on computers or special-purpose hardware.

The algorithm is based on previous work on fast algorithms for the parallel-beam geometry [1] and is related to our US patents on tomographic backprojection (BP) and reprojection (RP) [7, 8]. These patents, U.S. Pat. Nos. 7,729,52 8,121,37 are incorporated herein by reference in their entirety.

The methods of this invention are significantly more efficient computationally, or more accurate, or both, than previously described related tomographic RP/BP methods such as those described in [3, 7, 8]. The various reprojectors described above also have corresponding backprojection methods, with related advantages and drawbacks.

REFERENCES

-   [1] George A and Bresler Y, Shear-Based Fast Hierarchical     Backprojection for Parallel-Beam Tomography, IEEE Trans Med Imag 26     (2007), 317-34. -   [2] Kak A C and Slaney M, Computerized Tomographic Imaging, IEEE     Press, 1988. -   [3] George A K and Bresler Y, A fast fan-beam backprojection     algorithm based on efficient sampling, Physics in medicine and     biology 58 (2013), 1415. -   [4] Andreas Antoniou, Digital signal processing, McGraw-Hill, 2005. -   [5] Weisstein E W, Legendre-Gauss Quadrature, (2017), From     MathWorld—A Wolfram Web Resource. http://mathworld.wolfram.     com/Legendre-GaussQuadrature.html. -   [6] Noo F, Pack J, and Heuscher D, Exact helical reconstruction     using native cone-beam geometries, Phys Med Biol 48 (2003),     3787-3818. -   [7] A. K. George and Y. Bresler, Fast hierarchical tomography     methods and apparatus, Jun. 1 2010, U.S. Pat. No. 7,729,526. -   [8] ______, Fast hierachical tomography methods and apparatus, Feb.     21 2012, U.S. Pat. No. 8,121,378. -   [9] Andrew Markoe, Analytic tomography, vol. 13, Cambridge     University Press, 2006. -   [10] Blu T, Thevenaz P, and Unser M, MOMS: Maximal-Order     Interpolation of Minimal Support, IEEE Trans Image Process 10     (2001), 1069-1080.

SUMMARY OF THE INVENTION

A preferred method for back projection in computed tomography (CT) obtains a pixel image. In the method a subject is imaged with a divergent beam source to obtain image projections taken along a collection of lines, curves, or surfaces. Intermediate-images are produced, one or more of which are sampled on a sheared Cartesian grid from selected projections. Digital image coordinate transformations are performed on selected intermediate-images, the parameters of one or more coordinate transformations being chosen such that Fourier spectral support of the intermediate-image is modified so that a region of interest has an increased extent along one or more coordinate direction and the aggregates of the intermediate-images can be represented with a desired accuracy by sparse samples. Subsets of transformed intermediate-images are aggregated to produce aggregate intermediate-images. The transformations and aggregating are repeated in a recursive manner until all projections and intermediate images have been processed and aggregated to form the pixel image.

A preferred method for forward projection in computed tomography (CT) obtains output tomographic projections from a pixel image. The pixel image is provided as an input image. Digital image coordinate transformations are performed on the input image to produce multiple intermediate-images, the parameters of one or more coordinate transformations being chosen such that Fourier spectral support of an intermediate-image being produced is modified so that a region of interest has a reduced extent along one or more coordinate direction and the intermediate-images can be represented with a desired accuracy by sparse samples. The coordinate transformations are repeated in a recursive manner, for a finite number of recursions, to produce additional intermediate-images of which one or more are sampled on a sheared Cartesian grid. Samples of the output tomographic projections are produced by interpolation of the intermediate-images onto lines, curves or surface, and weighted summation of the data along lines, curves, or surfaces.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1C are illustrations of some of the tomographic imaging geometries to which this invention is applicable. FIG. 1A 2D Parallel beam Geometry with view-angle θ and detector coordinate t, FIG. 1B 2D Curved Fan Beam Geometry with source-angle β and fan angle α, FIG. 1C 3D Curved Cone Beam Geometry with a helical trajectory; source-angle β, fan-angle α and vertical detector coordinates v;

FIGS. 2A-2B illustrate details of the geometry of parallel-beam projection. FIG. 2A The projection ray (

_(θ)f)(t) is the line-integral computed along the line indicated by the red dashed arrow. The set of all such line-integrals for all t∈

form a single parallel-beam projection at view θ. FIG. 2B The geometry used in the derivation of shear-scale based RP as explained in Appendix A;

FIGS. 3A-3C are illustrations of Shearing and Shear-scaling FIG. 3A Original image f, FIG. 3B Sheared image

(α)f, defined in (10), with α=0.2, FIG. 3C Shear-scaled image

(σ₁, σ₂)f, defined in (11), with σ₁=1.5 and σ₂=0.2;

FIG. 4 is a block-diagram of slow, non-hierarchical shear-based RP as described in Section 1.2.1. The input image is y and the output parallel-beam projections are p₁, . . . , p_(Q). The intermediate blocks represent shear operators

, shear-scale operators

, and reprojections at a single-view angle

₀;

FIGS. 5A-5D are illustrations of the Fourier interpretation of RP via shear and scale. FIG. 5A A path from the root to a single leaf of the block-diagram in FIG. 4 corresponding to RP at a single parallel-beam view-angle. FIG. 5B Fourier transform of input image. The solid line represents the spectral support of a single parallel-beam projection at view angle θ as explained by the Fourier Slice theorem. The striped square is simply to illustrate the geometric transformation. FIG. 5C The shear operator

(−tan θ) along the x₁ axis causes the Fourier transform to be sheared along ω₂ such that the spectral support of p_(θ) lies on the ω₁-axis FIG. 5D The subsequent shear-scale operator

(sec θ, 0) results in a coordinate scaling along x₁ by a factor of sec θ, and a stretching of the spectral support along the ω₁ axis by sec θ;

FIG. 6 is block diagram of hierarchical RP for the parallel-beam geometry in the continuous-domain. This block-diagram is a modification of FIG. 4. The input image is y and the output parallel-beam projections are p₁, p₂, . . . , p_(Q). As described in Section 1.2.3, the shear and shear-scale operators are rearranged in a hierarchical manner in order that both block-diagrams produce the same output;

FIG. 7 is an illustration of the discrete-domain hierarchical reprojection algorithm;

FIGS. 8A-8E illustrate the changes in spectral support and DTFT contents for images in the discrete-domain hierarchical reprojection algorithm;

FIGS. 9A-9B illustrate the partitioning of the spectral support and DTFT contents for images in the discrete-domain hierarchical reprojection algorithm;

FIGS. 10A-10B illustrate the Fourier-domain partitioning scheme as explained in Section 1.3.1 FIG. 10A Spectral support of input image is divided into two “half-planes”: horizontally and vertically oriented half-planes FIG. 10B The partitioning of the DTFT domain after L levels of recursive hierarchical partitioning. The m^(th) wedge corresponds to the kernel-stage input image I_(L,m) ^(d) in FIG. 7;

FIG. 11 illustrates the oversampling of the intermediate images by introducing up-interpolation blocks (U_(f) and U_(s)) in level l=0 of the method;

FIGS. 12A-12D illustrate the frequency manipulations in the pre-decomposition stage of the hierarchy corresponding to the block-diagram in FIG. 11 and explained in Section 1.3.3. Because of the periodicty of the DTFT the parts extending beyond the +r boundaries are wrapped in the [−π, π] interval along ω_(c) but this is not shown in subfigures C-D for simplicity;

FIGS. 13A-13B illustrate the transformation between the DTFT of the parent and child image, which as explained in Section 1.3.5, can be used to determine the shear parameters in the decomposition stage. FIG. 13A Spectral support of parent image I_(l,m) ^(d) FIG. 13B Spectral support of parent image upon shearing. After decimation this will yield the child image I_(l+1,3m) ^(d). Because of the periodicty of the DTFT the parts extending beyond the +π boundaries are wrapped in the [−π, π] interval along a, but this is not shown for simplicity;

FIGS. 14A-14D illustrate the kernel-stage operations in parallel-beam (FIG. 14A-B) vs fan-beam (FIG. 14C-D) geometries as explained in Section 1.3.6. FIG. 14A In the parallel beam case the shear-scale operator C is equivalent to interpolating the input image along a set of slanted, parallel lines. FIG. 14B The zero-view-projection operator is equivalent to summing the shear-scaled image along the slow coordinate. FIG. 14C In contrast in the fan-beam case the first operation is an interpolation onto a set of slanted, non-parallel lines followed by FIG. 14D summing the resulting image along the slow coordinate;

FIG. 15 illustrates the transformation between fan-beam and parallel-beam geometries. A ray in the fan-beam geometry parameterized by (β, α) is equivalent to a parallel-beam parameterization of (θ, t) as specified in (44);

FIGS. 16A-16D illustrate the computation of the kernel-stage interpolation coordinates as explained in Section 1.3.6. FIG. 16A The DTFT of the input image showing the spectral support of the parallel beam projection containing the ray whose parallel-beam view angle is θ′ (i.e., “the spectral support of the ray”). FIG. 16B The DTFT of the kernel-stage input image that contains the spectrum of this parallel-beam projection FIG. 16C shows the location of the ray (θ′, t′) in the coordinate system of the input image y (in FIG. 11) and FIG. 16D shows the location of this ray when transformed into the coordinate system of the relevant kernel-stage input image;

FIGS. 17A-17B illustrate the geometry of 3D curved-panel cone-beam geometry to accompany equations (64)-(65). FIG. 17A The rays in the projection set are parameterized by sourc-angle β, fan-angle ca and vertical detector coordinate v. Here the trajectory of the source is helica/spiral. FIG. 17B Circular source trajectory;

FIGS. 18A-18B are illustrations of the Fourier Slice Theorem in 3D. FIG. 18A In spatial coordinates a 3D parallel-beam X-ray transform projection is parameterized by a azimuthal angle θ and elevation angle ξ. FIG. 18B In the 3D Fourier domain the support of this projection is a 2D plane that is oriented at (θ, ξ) as shown;

FIGS. 19A-19G illustrate the Fourier analysis of decomposition stages of the 2.5D method as explained in Section 2.2.1. FIG. 19A-C Shows the evolution of the DTFT support of a single child branch in a decomposition stage node of the 2D RP algorithm. The striped region in FIG. 19A is the subset of the DTFT of the parent image that gets retained in the child image. Recursively applying the evolution in FIG. 19A-C to all the decomposition levels we see that the subset of the DTFT of the input image that gets retained in a kernel-stage input image is as shown in D. FIG. 19E In the narrow-cone method every z-slice of the input image is operated on identically so the 3D spectral support corresponding to the 2D spectral support shown in FIG. 19D is a slab extended along ω₂. FIG. 19F For large the spectral support of the parallel-beam projection no longer lies inside the support of the kernel-stage input image. FIG. 19G A side view of FIG. 19F showing how the spectral support of the projection falls outside the support of the kernel-stage input image;

FIG. 20 illustrates separable resampling in the kernel-stage as explained in Section 2.2.2(d): The interpolation of the ray (solid line) that passes through the points v_(L) and η_(L) from the underlying 3D volume y[m_(f), m_(s), m_(z)], can be computed with a sequence of two 1D interpolations onto the line h_(f) (the dashed gray) followed by onto the line h_(z) (the dashed gray line) as stated in (77);

FIG. 21 is a block diagram of DIA reprojection algorithm for narrow cone-angle geometries as explained in Section 2.2.3. The input is the 3D image volume y^(d), at the top of the block-diagram, and the output is the 3D projections volume P[m_(β), m_(α), m_(v)] at the bottom of the block-diagram;

FIG. 22 is a block diagram of DIA reprojection algorithm for narrow cone-angle geometries that operates in the hybrid space-Fourier domain. The input is the 3D image volume y^(d), at the top of the block-diagram, and the output is the 3D projections volume P[m_(β), m_(α), m_(v)] at the bottom of the block-diagram;

FIGS. 23A-23D illustrate the justification for the wide cone kernel-stage strategy as explained in Section 2.3.1.1 The union of the spectral supports of all the kernel-stage input images is the full 3D DTFT of the input image. This suggests that any cone-beam projection can be produced by manipulating and combining one or more kernel-stage images;

FIGS. 24A-24B illustrate the partitioning of θ-ξ plane for the low cone-angle method FIG. 24A Partition of 2D frequency plane for the 2D DIA method as shown in FIG. 10. FIG. 24B Partitioning of θ-ξ plane for the corresponding low-cone-angle DIA method;

FIGS. 25A-25E are illustrations of the diamond shape of a cell in the θ-ξ plane as explained in Section 2.3.2(c). FIG. 25A A subset of the θ-ξ plane. Four points in the plane are indicated by (i)-(iv). Each point corresponds to a 3D PB projection. FIG. 25B-E The 3D spectral support of the 3D PB projections corresponding to points (i)-(iv). In each plot the spectral support of the projection is shown by the cross-hatched plane and the spectral support of the kernel-stage image is indicated by the rectangular cuboid. While in cases (i)-(iii) the spectral support of the projection lies inside the kernel-stage image, in case (iv) it does not. This leads to the diamond shape of the cell in FIG. 25A shown by the solid black diamond;

FIGS. 26A-26C illustrate the partitioning of the whole θ-ξ plane in a greedy manner as explained in Section 2.3.2(d) FIG. 26A First the whole θ-axis is partitioned by a row of diamond-shaped cells, FIG. 26B After the row is complete the partitioning is extended to the adjacent row of cells in a greedy manner. For every cell in this row three of the four corners (solid circles) have already been determined. The fourth corner is determined by finding the point with the largest ξ that can be contained in the spectral support of the relevant kernel-stage input image as shown in FIG. 26C. FIG. 26C The three spectral supports corresponding to the solid circles in FIG. 26B are indicated by the planes; differentiated by the line-style of the plane edge (dashed, dotted and dot-dashed). The spectral support of the kernel-stage image containing them is shown by the cuboid containing the planes;

FIGS. 27A-27B illustrate how the spectral support of any intermediate image can be transformed to baseband by a sequence of 1D shears as explained in Section 2.3.2(e). FIG. 27A Recall in the 2D algorithm the spectral support of any intermediate image corresponds to a slanted strip in the DTFT of the input image. This spectral support can be transformed to baseband by a shear in the DTFT domain along w, that is equivalent to a shear in the space domain along f. FIG. 27B In the case of wide-cone angle RP method, a sequence of two shears can transform the spectral support of any intermediate image to baseband. The spectral support of the intermediate image, in the DTFT domain of the input image is as shown in (b1), after a shear in the Fourier domain in ω_(s)-ω_(f) the spectral support is transformed to the slab shown in (b2), and after a shear in ω_(s)-ω_(z) the spectral support is transformed to the slab shown in (b3) such that it has a low bandwidth along ω_(s);

FIGS. 28A-28C illustrate the hierarchical relationship of θ-ξ cells in different levels of the decomposition stage FIG. 28A The partitioning of the θ-ξ plane for the lowest decomposition level is constructed by extending the greedy method of FIG. 26 to the relevant subset of the whole plane. FIG. 28B The θ-ξ partitioning in the second lowest decomposition levels is constructed by combining the cells from the lowest decomposition levels in groups of 3×3. Each parent cell, indicated by the thick diamonds, contains a set of 3×3 child cells. FIG. 28C The θ-ξ partitioning in the highest decomposition level results after repeated 3×3 combinations of lower levels. Here we are interested in a geometry that has a max cone angle of 10° so the region of the θ-ξ plane that we are interested in is [−45°, +135° ]×[−10°, 10° ]

FIG. 29 is an illustration that rays that are close in θ, ξ are also spatially localized. The dashed lines represent the location of the rays that have a small range in ξ and θ. The solid lines surrounding the dashed lines denote a box that contains these rays and is inside the FOV. This box has a limited extent in z;

FIGS. 30A-30C illustrate how spatial Localization of rays within a θ-ξ cell allows for the intermediate images to be cropped in such a way that their z-extent scales by a factor of 3 from one level to the next. Without loss of generality we are showing the case of a CCB geometry. FIG. 30A All rays that share the same (θ, ξ) intersect the cylinderical shell of the FOV in a 3D curve that lies on a plane. FIG. 30B The curves corresponding to the four corner points of a θ-ξ diamond in the lowest decomposition level are shown by the black curves. The containing volume of the whole cell is computed by finding the z extent of these curves. FIG. 30C The containing volume of the three lowest levels in the decomposition stage are indicated by solid, dashed and dotted ellipsses respectively. The z-extent of the three containing volumes scales by a factor of 3 from a child to a parent level;

FIGS. 31A-31E are illustrations of transformation to baseband in the Fourier and spatial domains. FIG. 31A Consider the intermediate image corresponding to the θ-ξ cell indicated by the thick-lined diamond. FIG. 31B The spectral support of this image in the domain of the DTFT of the input image to the RP algorithm. FIG. 31C The spatial support, i.e. the borders of the containing volume, in the coordinate system of the input image to the RP algorithm. FIG. 31D The spectral support of this image after transformation to baseband. Note that the bandwidth along w, is small. FIG. 31E The spatial support of this intermediate image after transformation to baseband;

FIGS. 32A-32E illustrate how an additional shear along z allows for a tighter cropping of the FOV. Spectral (FIG. 32A) and spatial (FIG. 32B) support of an intermediate image in the frame of the RP input image. Spectral (FIG. 32C) and spatial (FIG. 32D) support of the intermediate image after transformation to baseband. Spectral (FIG. 32E) and spatial (FIG. 32F) support of the intermediate image after the additional z-f shear that results in a smaller z-extent and therefore allows for tighter cropping. FIG. 32G Side view of the containing volumes of the intermediate image after the two transformations that show how the additional z-f transformation results in a reduction in the z-extent and therefore allows for tighter cropping;

FIG. 33 is a block diagram of DIA reprojection algorithm for wide cone-angle geometries as explained in Section 2.3.9. The input is the 3D image volume y^(d), at the top of the block-diagram, and the output is the 3D projections volume p_(d) at the bottom of the block-diagram;

FIG. 34 is a block diagram of DIA backprojection algorithm for wide cone-angle geometries as explained in Section 2.4. The input is the 3D projections volume p_(d) at the top of the block-diagram and the output is the 3D image volume y^(d), at the bottom of the block-diagram;

FIG. 35 is a block diagram of DIA backprojection algorithm for narrow cone-angle geometry that operates in the hybrid space-Fourier domain;

FIG. 36 is a block diagram of DIA backprojection algorithm for narrow cone-angle geometry that operates fully in the space domain;

FIGS. 37A-37F illustrate the modeling of beamlets. FIG. 37A Geometry of a single ray with parallel-beam detector coordinate t and view-angle θ. FIG. 37B Integration width for finite detector modeling. FIG. 37C Computing r (distance from a sample to source). FIG. 37D Beamlets from a point source to a set of detectorlets. FIG. 37E) Integration width for finite focal spot modeling. FIG. 37F Beamlets from a set of detectorlets to a point detector;

FIGS. 38A-38B illustrate the modeling of beamlets along detector row coordinate v as explained in Section 3.2 FIG. 38A Geometry of finite detector width FIG. 38B Geometry of finite focal spot;

FIGS. 39A-39B are illustrations of the forward cumulative sum operator and its adjoint. FIG. 39A Matrix A, representing the forward cumulative sum operator. The entries in the cross-hatched region are 1. All other entries are zeros. The dark lines denote the borders between regions. The dashed lines denote individual rows or columns. FIG. 39B The matrix of the adjoint of cumulative sum operator denoted A_(s) ^(T);

FIG. 40 is pseudocode for the adjoint of cumulative sum part of integrating detector interpolation;

FIG. 41 is a schematic diagram of a preferred embodiment that includes the reprojection and backprojection computed tomography system of the invention;

FIG. 42 illustrates a general computer system that can perform preferred methods of the invention and can serve as both the image reconstructor 10 and the computer 20 of FIG. 41.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Methods of the invention provide computationally efficient and accurate methods for reprojection and for backprojection that overcome drawbacks of the existing methods discussed in the background

Preferred embodiments provides advances in efficiency. Important aspects of preferred embodiments include methods to obtain a pixel image (1) operating within the parallel-beam geometry, rather than a divergent-beam geometry, for the majority of the operations, (2) representing images in the hybrid space-Fourier domain rather than the space domain, (3) allowing adjacent 2D slices of the 3D volume to be operated on independently, and (4) determining the image transformations and cropping that allow for an efficient implementation on geometries with large cone angles.

Preferred embodiments can be implemented in reconfigurable hardware such as field-programmable gate array (FPGA), or special purpose hardware such as an application specific integrated circuit (ASIC), in which cases no separate storage of instructions or computer programs is required instead the structure of the hardware (computing circuit) is adapted to execute the methods of this invention on image data fed into this hardware, which then produces the desired output in accordance with methods of the invention.

Those knowledgeable in the art will appreciate that other embodiments of the present invention lend themselves well to practice in the form of computer program products. Accordingly, it will be appreciated that embodiments of the present invention may comprise computer program products comprising computer executable instructions stored on a non-transitory computer readable medium that, when executed, cause a computer to undertake methods according to the present invention, or a computer configured to carry out such methods. The executable instructions may comprise computer program language instructions that have been compiled into a machine-readable format. The non-transitory computer-readable medium may comprise, by way of example, a magnetic, optical, signal-based, and/or circuitry medium useful for storing data. The instructions may be downloaded entirely or in part from a networked computer. Also, it will be appreciated that the term “computer” as used herein is intended to broadly refer to any machine capable of reading and executing recorded instructions. It will also be understood that results of methods of the present invention may be displayed on one or more monitors or displays (e.g., as text, graphics, charts, code, etc.), printed on suitable media, stored in appropriate memory or storage, etc.

Preferred embodiments of the invention will now be discussed with respect to the drawings. The drawings may include schematic representations, which will be understood by artisans in view of the general knowledge in the art and the description that follows. Features may be exaggerated in the drawings for emphasis, and features may not be to scale.

1.1 Definitions Etc 1.1.1 Tomography Basics

-   -   a. Tomographic reconstruction refers to the mathematical problem         of computing the values of a function y:         ^(n)→         given a set of line-integrals through it.     -   b. A line in         ^(n) can be fully characterized by a point in space {right arrow         over (x)}₀ and a unit direction vector {right arrow over (d)},         so a line-integral through y is defined as ∫_(−∞)         ^(∞)y(x₀+t{right arrow over (d)})dt. We refer to the line along         which this integral is performed as a “ray”.     -   c. (Re)projection (RP) is the mathematical operation of         computing a set of such line integrals from y({right arrow over         (x)}). The phrase “compute a ray” refers to computing the         integral along a single such line.     -   d. The location and orientation of the lines along which         integrals are computed depend on the geometry and physics of the         data acquisition. In X-ray tomography the lines along which the         integrals are computed connect an X-ray source to a detector.         The geometry of the X-ray tomography problem refers to the         description positions of the sources, and the relative position         of the sources and detectors. FIGS. 1A-1C show several common         classes of tomographic geometries for 2D and 3D.     -   e. As shown in FIGS. 1A-1C, the location of the source and the         detector in common geometries can be characterized by a small         number of parameters.         -   For example, as shown in FIG. 1A, in the 2D parallel-beam             geometry there are two parameters: the view-angle θ and the             detector coordinate t. The set of sources lie on a line that             is oriented at a view-angle θ relative to the X-axis. The             detectors, numbering the same as the sources, lie on a             parallel line to the sources. The line-integral lines             connect each source to its corresponding detector.         -   In 2D fan-beam geometries, as shown in FIG. 1B, the line             integral lines connect a single source to multiple             detectors. The location of the source is characterized by             the source-radius D and the view-angle β. The location of             the detectors is characterized by the fan-angle α.         -   The common 3D geometries have a similar parameterization to             the 2D Fan Beam geometries. As shown in FIG. 1C additional             parameters capture the location and orientation of the             line-integral lines in the third coordinate dimension.             Comparing the 2D geometry in FIG. 1B to its 3D equivalent in             FIG. 1C, we see that the 3D geometry parameterization has             the following additional parameters. It has a third spatial             coordinate x₃. It has a second detector coordinate v, in             addition to the fan-angle α, that characterizes the angle of             inclination of the detector from the source, and the helical             pitch h that encapsulates the movement of the source             trajectory along the x₃ coordinate axis.         -   While these are only a few of the possible tomographic             geometries and associated parameterizations, they illustrate             the ways in which the locations of the source and detectors             are typically characterized.     -   f. In each of these geometries we consider a single projection         to be the set of line-integrals that share the same view-angle.         So for the 2D fan-beam geometries a single projection is the 1D         function that is constructed by holding the view-angle β fixed         and only varying the detector coordinate s or α, as appropriate.         In the case of 3D cone-beam geometries a single projection is         the 2D function that is constructed by holding the view-angle β         fixed and varying the two detector coordinates (u, v), in the         case of the flat cone beam geometry, or (α, v) in the case of         the curved cone beam geometry. g. Backprojection is the         mathematical adjoint to reprojection [9]. There are several         tomographic reconstruction algorithms that first perform a         preprocessing step in which the projections are filtered and         weighted followed by a backprojection of those filtered         projections to recover an estimate of the original function y.

1.1.2 Image Notation

We sometimes use vector notation for the coordinates of an image. So y({right arrow over (x)})

y(x₁, x₂, . . . , x_(N)). We sometimes denote discrete domain images by square brackets, i.e., y[{right arrow over (n)}], for {right arrow over (n)}∈

^(n), to distinguish them from continuous-domain images that are indicated by curved brackets i.e., y({right arrow over (x)}), for {right arrow over (x)}∈

^(n),

1.1.3 Linear Transformation in Fourier-Domain

The following are the relationship between the spatial and Fourier domains [1] when an image is subject to a linear tranformation V.

-   -   Suppose an image y({right arrow over (x)}) is transformed in the         spatial domain by matrix V i.e. g({right arrow over         (x)})=y(V{right arrow over (x)})     -   Then in the Fourier domain the Fourier transform y({right arrow         over (ω)}) of y({right arrow over (x)}) it undergoes the         following transformation: G({right arrow over         (ω)})=(1/|V|)Y(V^(−T){right arrow over (ω)}), where |V| is the         determinant of the matrix V     -   Consequently a point that is located at {right arrow over         (x)}_(f) in the input image y will be transformed to the         location {right arrow over (x)}_(g)=V⁻¹{right arrow over         (x)}_(f) in the output image g.     -   Similarly a point in the spectral support originally located at         {right arrow over (ω)}_(f) in the Fourier transform y({right         arrow over (ω)}) of the input image y({right arrow over (x)})         will be transformed to the location {right arrow over         (ω)}_(g)=V^(T){right arrow over (ω)}_(f) in the Fourier         transform G({right arrow over (ω)}) of the output image g({right         arrow over (x)}).

1.1.4 Spline Interpolation

Let us define the 1D interpolation operation as follows. Given a discrete-domain signal y^(d), sampling interval T, some interpolating function ψ (such as the sinc or a spline-based function), and a set of output coordinates {x_(n)|n∈

}, then the interpolated signal g^(d) is defined as follows.

$\begin{matrix} {{g^{d}\lbrack n\rbrack} = {{{y\left( x_{n} \right)}\mspace{14mu} {where}\mspace{14mu} {y(x)}} = {\sum\limits_{m}{{\psi \left( \frac{x - {mT}}{T} \right)}{y^{d}\lbrack m\rbrack}}}}} & (1) \end{matrix}$

We assume that ψ satisfies the interpolation condition i.e.

ψ(0)=1 and ψ(k)=0 if k∈

\{0}  (2)

Here y^(d) is the original discrete-domain signal. The continuous-domain function y is what is produced when y^(d) is interpolated from the discrete-domain to the continuous-domain using basis function ψ. g^(d) is the discrete-domain signal that is produced by sampling y(x) at the set of output coordinates {x_(n)}.

The discrete-domain 1D interpolation operation from y^(d) to g^(d) can be written in one step as follows:

$\begin{matrix} {{g^{d}\lbrack n\rbrack} = {\sum\limits_{m}{{\psi \left( {{x_{n}/T} - m} \right)}{y^{d}\lbrack m\rbrack}}}} & (3) \end{matrix}$

This framework can be generalized to use basis functions ψ that do not satisfy the interpolation condition (2). Unser at al. [10] demonstrated that using a spline basis function can achieve high-quality but computationally cheap interpolation. In this case (1) generalizes to:

$\begin{matrix} {{g^{d}\lbrack n\rbrack} = {{{y\left( x_{n} \right)}\mspace{14mu} {where}\mspace{14mu} {y(x)}} = {\sum\limits_{m}{{\psi \left( {x - m} \right)}{{\hat{y}}^{d}\lbrack m\rbrack}}}}} & (4) \end{matrix}$

The signal {right arrow over (y)}^(d) is the set of weights of the basis function and the key is that {circumflex over (ψ)}^(d)≠{right arrow over (y)}^(d). Interpolation can be implemented cheaply in two steps:

-   -   1) An IIR filtering step, that we call a spline transform. In         this step the weights y^(d) of the basis function are computed         from the input signal y^(d).     -   2) An FIR filtering step that we call a spline FIR operation.         Here the output samples g^(d) are produced from the basis         function weights:

$\begin{matrix} {{g^{d}\lbrack n\rbrack} = {\sum\limits_{m}{{\psi \left( {\frac{x_{n}}{T} - m} \right)}{{\hat{y}}^{d}\lbrack m\rbrack}}}} & (5) \end{matrix}$

-   -   -   This FIR filtering operation can be shift-varying if the             output sample spacing is different from the input sample             spacing. Since the support of the basis function ψ is small,             the FIR filter has a small number of taps.

1.1.5 Interpolation Short-Hand

We describe the specifics for the case of a 3D image. Let y^(d)[{right arrow over (n)}] be a discrete domain image where {right arrow over (n)}∈

³. Consider the interpolation of this image at some point {right arrow over (x)} where {right arrow over (x)}∈

³. We denote this operation by the short-hand y^(d)[{right arrow over (x)}]. Here the square brackets [.] indicate that the function is in the discrete domain. By this we mean the following

${y^{d}\left\lbrack \overset{\rightarrow}{x} \right\rbrack}\overset{\Delta}{=}{\sum\limits_{\overset{\rightarrow}{m}\;}{{\psi \left( {\frac{x_{1}}{T} - m_{1}} \right)}{\psi \left( {\frac{x_{2}}{T} - m_{2}} \right)}{\psi \left( {\frac{x_{3}}{T} - m_{3}} \right)}{y^{d}\left\lbrack \overset{\rightarrow}{m} \right\rbrack}}}$

Here ψ is the basis function and separable interpolation is shown. If desired, non-separable interpolation may be used too.

1.1.6 Spline Decimation/Interpolation by an Integer Factor

Decimation by an integer factor D is implemented as the adjoint of spline interpolation by an integer factor D. Denoting the impulse response of the spline transform operator corresponding to ψ by ψ⁻¹, we can express spline interpolation by an integer factor D as follows. Here the input signal is g_(LO) and the output interpolated signal is g_(HI): ĝ_(LO)=−ψ⁻¹*g_(LO) followed by

$\begin{matrix} {{g_{HI}\lbrack n\rbrack} = {{{\hat{g}}_{LO}\left\lbrack {n/D} \right\rbrack} = {\sum\limits_{m}{{\psi \left( {{n/D} - m} \right)}{{\hat{g}}_{LO}\lbrack m\rbrack}}}}} & (6) \end{matrix}$

Here * is the 1D convolution operator.

We implement decimation by an integer factor, by taking the adjoint of the interpolation equation (6), which results in the following two step operation:

$\begin{matrix} {{{\hat{g}}_{LO}\lbrack m\rbrack} = {{\sum\limits_{m}{{\psi \left( {{n/D} - m} \right)}{g_{HI}\lbrack n\rbrack}\mspace{14mu} {followed}\mspace{14mu} {by}\mspace{14mu} g_{LO}}} = {\psi^{- 1}*{\hat{g}}_{LO}}}} & (7) \end{matrix}$

1.2 2D Parallel-Beam Geometry

In preparation for the description of the full cone-beam reprojection (RP) and backprojection (BP) methods, we first describe RP, and similarly BP, for the simpler parallel-beam geometry. Since this section describes a simplified form of the algorithm it will only sketch out some aspects of the methods and will leave more details to the next section on the fan-beam geometry (Section 1.3)

1.2.1 Shear-Based RP in Continuous Domain

Consider a 2D continuous domain image y(x₁, x₂). The 1D parallel-beam tomographic projection of y at an angle θ is the set of all parallel straight-line integrals through the image oriented at the angle θ, as illustrated in FIG. 2A and is defined as follows:

$\begin{matrix} {{\left( {_{\theta}y} \right)(t)}\overset{\Delta}{=}{\int_{- \infty}^{\infty}{{y\left( {\begin{bmatrix} {\cos \; \theta} & {{- \sin}\; \theta} \\ {\sin \; \theta} & {\cos \; \theta} \end{bmatrix}\;\begin{bmatrix} t \\ s \end{bmatrix}} \right)}\; {ds}}}} & (8) \end{matrix}$

In FIG. 2A, the dashed arrow shows the line on which the line-integral is computed for a fixed angle θ and detector coordinate t.

From the way in which (8) is written, it is easy to see that RP at an angle θ is equivalent to performing a clockwise rotation by θ on the input image y and then integrating the rotated image along the second (vertical) coordinate.

We instead show that RP can also be expressed as performing a different image transformation (a shear followed by a coordinate scaling, which we denote by

and refer to as a shear-scale) and then integrating the shear-scaled image along the second (vertical) coordinate (and scaling the output by 1/cos θ):

$\begin{matrix} {{\left( {_{\theta}y} \right)(t)} = {\frac{1}{\cos \; \theta}{\int_{- \infty}^{\infty}{{y\left( {\begin{bmatrix} {{1/\cos}\; \theta} & {{- \tan}\; \theta} \\ 0 & 1 \end{bmatrix}\;\begin{bmatrix} t \\ s \end{bmatrix}} \right)}\; {ds}}}}} & (9) \end{matrix}$

The proof of this is in Section A. Henceforth, for conciseness, we sometimes use “sec θ” instead of “1/cos θ”.

Let us define the following two linear image transformation operators (each

²→

²)

-   -   (μ): Shear by μ along the first coordinate. This operation is         illustrated in FIGS. 3A-B and is defined as follows

$\begin{matrix} {{\left( {{(\mu)}y} \right)\left( \overset{\rightarrow}{x} \right)} = {y\left( {\begin{bmatrix} 1 & \mu \\ 0 & 1 \end{bmatrix}\; \overset{\rightarrow}{x}} \right)}} & (10) \end{matrix}$

-   -   (σ₁, σ₂): Shear-scale along the first coordinate, with parameter         {right arrow over (σ)}=[σ₁ σ₂]^(T). The shear parameter is σ₂         and the scale parameter is σ₁. This operation is illustrated in         the transformation from FIG. 3A to FIG. 3C and is defined as

$\begin{matrix} {{\left( {{\left( \overset{\rightarrow}{\sigma} \right)}y} \right)\left( \overset{\rightarrow}{x} \right)} = {y\left( {\begin{bmatrix} \sigma_{1} & \sigma_{2} \\ 0 & 1 \end{bmatrix}\; \overset{\rightarrow}{x}} \right)}} & (11) \end{matrix}$

It can also be shown that the shear and shear-scale operators satisfy the following useful identities. The proofs of these are in Appendix B:

(μ₁)

(μ₂) . . .

(μn)=

(μ₁+μ₂+ . . . +μ_(n))  (12)

(σ₁,σ₂)

(μ)=

(σ₁,σ₂+μ)  (13)

(μ₁,0)

(μ)=

(σ₁,μ) By setting σ₂=2=0 in (13)  (14)

(σ₁,0)

(μ₁)

(μ₂) . . .

(μ_(n))=

(σ₁·μ₁+μ₂+ . . . +μ_(n)) Combining (12) and (14)  (15)

The shear-based RP expression (9) can be restated in terms of the shear-scale operator, or a sequence of a shear and scale operator:

$\begin{matrix} {_{\theta}\overset{(11)}{=}{{\sec \; \theta \; _{0}{\left( {{\sec \; \theta},{{- \tan}\; \theta}} \right)}}\overset{(14)}{=}{\sec \; {\theta }_{0}{\left( {{\sec \; \theta},0} \right)}{\left( {{- \tan}\; \theta} \right)}}}} & (16) \end{matrix}$

This says that a reprojection at an angle θ is equivalent to transforming the input image by the operator

, and then performing a reprojection at a single view-angle θ=0. FIG. 4 is the block diagram representation of (16). The input image is y({right arrow over (x)}). The Q output parallel-beam projections p₁, p₂, . . . , p_(Q) correspond to view-angles θ₁, θ₂, . . . , θ_(Q). So the scale parameters applied in the shear-scale operator blocks, denoted in FIG. 4 by

(σ₁), . . . ,

(σ_(Q)), are σ_(q)=sec θ_(q). The shear parameters applied in the shear operator blocks, denoted in FIG. 4 by

(μ₁), . . . ,

(μ_(Q)), are μ_(q)=−tan θ_(q). For now let us only consider θ_(q)∈[−π/4, π/4). For simplicity we omit the weighting by sec θ from the block diagrams but this scaling should be included in an actual implementation.

1.2.2 Shear-based RP: Fourier Interpretation

Using a Fourier-domain interpretation of the non-hierarchical block diagram (FIG. 4), we rearrange it into a hierarchical form, that when implemented in the discrete-domain, results in a fast RP algorithm by leveraging the Shannon-Nyquist sampling theory to achieve efficient sampling. The Fourier-domain interpretation combines (a) the Fourier Slice theorem with (b) Fourier-domain understanding of spatial-domain linear geometric image transformations (such as a shear and shear-scale) as explained in Section 1.1.3.

The Fourier slice theorem says that the 1D Fourier transform of a projection at an angle θ is equal to a radial cut through the 2D Fourier transform of the input image oriented at an angle θ. Denoting a parallel-beam projection at angle θ by:

p _(θ)(t)=(

_(θ) y)({right arrow over (x)})  (17)

then its Fourier transform satisfies(

₁ p _(θ))(ω)=(

₂ y)(ω cos θ,ω sin θ)  (18)

Here we denote the Fourier transform operator in 1 or 2 coordinates by

₁ and

₂ respectively. Note that in the special case when θ=0, the Fourier transform

₁

₀y is exactly a cut through

₂y along the ω₁ axis.

From Section 1.1.3 we know that a spatial shear of y by μ along x₁ results in the Fourier transform of y being sheared by μ along ω₂. A coordinate-scaling by σ₂ along x₁ (i.e. a shear-scale

(0, σ₂)) results in a coordinate-scaling by 1/σ₂ along ω₁ of its Fourier transform.

Thus the non-hierarchical shear-based RP represented by FIG. 4 can be interpreted as manipulating the Fourier transform of the input image. This is illustrated in FIGS. 5A-5D. FIG. 5A shows a block diagram of the operations performed on the input image. It shows the path from the root to a single leaf of the block diagram in FIG. 4. The input image y is subject to a shear, denoted by the block

(−tan θ) to produce the image g₁, which in turn is subject to the shear-scale operator

(−sec θ, 0) to produce the image g₂. FIGS. 5B-D show the effect of these two operations in the Fourier domain.

In FIG. 5B-D, the coordinate transformations of the Fourier transform are illustrated by their effect on a square shaped region in the Fourier domain. In FIG. 5B, the thick line oriented at angle θ relative to the ω₁ axis represents the spectral support of a single parallel-beam projection at view angle θ as explained by the Fourier Slice theorem. FIG. 5C shows the spectral support of the sheared image g₁. It shows that the Fourier transform of the input image is sheared along ω₂ such that the Fourier content of the desired projection p_(θ) (the thick line originally oriented at an angle θ relative to the ω₁ axis) lies on the ω₁ axis. FIG. 5D shows the spectral support of the shear-scaled image g₂. It shows that the Fourier transform is stretched along ω₁. Finally, as indicated by the block

₀ in FIG. 5A, a θ=0 reprojection is computed to extract a 1D cut along the ω₁-axis.

1.2.3 Hierarchical Algorithm (Continuous-Domain)

Using the identities, (12)-(15), for the shear and shear-scale operators we rearrange the block diagram from FIG. 4 to the hierarchical block diagram shown in FIG. 6. The root node of this hierarchy is the input image y({right arrow over (x)}) and the leaves are the output projections p₁, p₂, . . . , p_(Q). The first L levels of the hierarchy are called the decomposition stage. At every node in the decomposition stage, the parent image is diverted into three child branches. The image in each child branch is sheared by a different shear factor to produce three child images. (In this particular embodiment of the algorithm, in the central branch of each node the shear factor is 0, so it is omitted). This ternary hierarchy has L levels and therefore the number of images after L levels, i.e. at the end of the decomposition stage, is 3^(L). For brevity we only depicts parts of the decomposition levels 1, 2 and L. The “ . . . ”s in the block-diagram indicate that in sections of the block-diagram that are not fully illustrated, the missing sections are easily inferred from the nearby sections that are fully illustrated i.e., in the missing sections the blockdiagram should be constructed in a similar hierarchical manner to nearby sections that are fully illustrated.

At the input to the lowest/last stage of the hierarchical tree, what we call the kernel-stage, there are 3^(L) images. At each input node of the kernel-stage the parent image is diverted into child branches. Each child branch corresponds to an output projection at a single view angle. In each branch the input image is first subjected to a shear-scale image transformation operator

({right arrow over (σ)}), followed by a zero-view-angle projection.

The cumulative operator that is applied to the input image y to compute any output projection p_(q) can be determined by following the path from the root of the tree to the q^(th) leaf. It is easy to see that the cumulative operator is a sequence of L shears followed by a shear-scale and a zero-view projection (and scalar multiplication by sec θ_(q)) i.e.

_(θ) _(q) y=sec θ_(q)

₀

({right arrow over (σ)}_(q))

(a _(L) ^(v)) . . .

(a ₂ ^(v))

(a ₁ ^(v))y where a _(l) ^(v)∈{−μ₁,θ,μ_(l)}  (19)

Here {right arrow over (σ)}^(v)=[σ₁ ^(v), σ₂ ^(v)]^(T). In order for the hierarchical RP block diagram to be correct it is necessary and sufficient for the left hand side (LHS) of (19) to be equal to the LHS of (16). Via the identities (12)-(15), this requires that

(σ₁ ^(v),σ₂ ^(v) +a ₁ ^(v) +a ₂ ^(v) + . . . +a _(L) ^(v))=

(sec θ_(q),−tan θ_(q))  (20)

The shear and shear-scale parameters in the hierarchy are chosen to satisfy (20). In addition they are chosen such that when this algorithm is implemented in the discrete-domain the intermediate images can be efficiently sampled by leveraging Shannon-Nyquist sampling theory. More details on this are in later sections (1.2.4 and 1.3) in which the discrete-domain methods are described. The mapping of projections to kernel-stage images, i.e., the determination of the set of indices v for which projections

_(σ) _(q) y are synthesized from kernel-stage image I_(L,k) for k=1, 2, . . . , 3^(L), also follows naturally from these parameter choices. The number of projections produced by every kernel-stage node is not necessarily equal and therefore the kernel-stage of the hierarchical tree is not necessarily ternary.

1.2.4 Hierarchical Algorithm (Discrete-Domain)

FIG. 7 shows the discrete-domain version of the hierarchical RP operator. In this case the input is a 2D discrete-domain image y^(d)[m₁, m₂], which are samples of a continuous domain image i.e. y^(d)[m₁, m₂]=y(Tm₁, Tm₂) and the output is a 2D data set of samples of the parallel-beam projections: p^(d)[m_(θ), m_(t)]=(

_(T) _(θ) _(m) _(θ) f)(T_(t)m_(t)). Without loss of generality we can assume that T=T_(t) i.e. the image sample spacing is equal to the detector coordinate sample spacing. If T_(t)≠T, the scale parameter of the kernel-stage shear-scale operator can be adjusted to accommodate it.

The image labeled I_(l,m) ^(d), is the discrete-domain equivalent of I_(l,k) in FIG. 6. The blocks labeled,

,

and

₀ are the discrete-domain equivalent of the shear, shear-scale and zero angle-projection operators in the continuous-domain block diagram (FIG. 6). The block labeled “rotate-90” is a clockwise image rotation by π/2 radians and is used to be able to reproject a parallel-beam projection at any θ (not just for θ∈[−π/4, π/4)).

The decimation blocks, denoted by ↓ D, perform the D-fold reduction in samples in every level. It is the hierarchical structure in conjunction with the decimation that deliver the speedup of the fast algorithm.

The operator blocks in FIG. 7 are defined as follows.

B.1

,

and rotate-90 denote the discrete-domain image transformation operators shear, shear-scale and clockwise rotation by π/2 radians. The input to a discrete-domain image transformation operator is a set of samples y^(d)[{right arrow over (m)}] and the output is the set of samples g^(d)[{right arrow over (m)}]. The operator is defined as a sequence of three operations (a) performing the discrete to continuous transformation (y^(d)→y):

$\begin{matrix} {{y\left( {x_{1},x_{2}} \right)} = {\sum\limits_{m_{1}}{\sum\limits_{m_{2}}{{{\hat{y}}^{d}\left\lbrack {m_{1},m_{2}} \right\rbrack}{\psi \left( {{\frac{x_{1}}{T} - m_{1}},{\frac{x_{2}}{T} - m_{2}}} \right)}}}}} & (21) \end{matrix}$

where ψ is some basis function (such as the sinc or spline functions) and ŷ^(d) is the basis function weights as explained in Section 1.1.4, (b) applying the linear operator to the continuous-domain image i.e. g({right arrow over (x)})=y(V{right arrow over (x)}), and (c) sampling the transformed image on the original grid g^(d)(m₁, m₂)=g(Tm₁, Tm₂). In practice the whole operation is performed in the discrete domain and no explicit transformation to the continuous domain is necessary.

In the case of the

operator,

$V = {\begin{bmatrix} 1 & \alpha \\ 0 & 1 \end{bmatrix}.}$

In the case of the

operator,

$V = {\begin{bmatrix} \sigma_{1} & \sigma_{2} \\ 0 & 1 \end{bmatrix}.}$

Note that when the interpolator ψ is separable, both of these operations require only a 1D interpolation operation (as defined in (3)). If ψ is separable it can be expressed as ψ(x₁, x₂)=ψ₁(x₁)ψ₂(x₂) so (21) reduces to:

$\begin{matrix} {{y\left( {x_{1},x_{2}} \right)} = {\sum\limits_{m_{1}}{\sum\limits_{m_{2}}{{{\hat{y}}^{d}\left\lbrack {m_{1},m_{2}} \right\rbrack}{\psi_{1}\left( {\frac{x_{1}}{T} - m_{1}} \right)}{\psi_{2}\left( {\frac{x_{2}}{T} - m_{2}} \right)}}}}} & (22) \end{matrix}$

Let us pick a 2D basis function ψ such that ψ₂ satisfies the interpolation condition property (2) (such as the sinc function) but ψ₁ does not (such as a B-spline function). Then the final discrete output image is

$\begin{matrix} \begin{matrix} {{g^{d}\left\lbrack {n_{1},n_{2}} \right\rbrack} = {{g\left( {{n_{1}T},{n_{2}T}} \right)} = {y\left( {{{\sigma_{1}n_{1}T} + {\sigma_{2}n_{2}T}},{n_{2}T}} \right)}}} & {{~~~~~~~}(23)} \\ {\overset{(21)}{=}{\sum\limits_{m_{1}}{\sum\limits_{m_{2}}{{y^{d}\left\lbrack {m_{1},m_{2}} \right\rbrack}{\psi_{1}\left( {{\sigma_{1}n_{1}} + {\sigma_{2}n_{2}} - m_{1}} \right)}{\psi_{2}\left( {n_{2} - m_{2}} \right)}}}}} & {(24)} \\ {= {\sum\limits_{m_{1}}{{{\hat{y}}^{d}\left\lbrack {m_{1},n_{2}} \right\rbrack}{\psi_{1}\left( {{\sigma_{1}n_{1}} + {\sigma_{2}n_{2}} - m_{1}} \right)}}}} & {{~~~~}(25)} \end{matrix} & \; \end{matrix}$

The equality in (25) results from the interpolation condition property (2) i.e., ψ₂(x)=0 if x∈

\{0}. For the case of the pure shear, since the scale parameter σ₁=1, the

operator reduces further to the following expression:

$\begin{matrix} {{\left( {Sy}^{d} \right)\left\lbrack {n_{1},n_{2}} \right\rbrack} = {{g^{d}\left\lbrack {n_{1},n_{2}} \right\rbrack} = {\sum\limits_{m_{1}}{{y^{d}\left\lbrack {m_{1},n_{2}} \right\rbrack}{\psi_{1}\left( {n_{1} - m_{1} + {\alpha \; n_{2}}} \right)}}}}} & (26) \end{matrix}$

Notice that here the n₁ ^(th)-row of the output image g^(d)[n₁, ·] is produced by convolving it with a shifted sampled version of the basis function ψ:

d[·,n ₂]=y ^(d)[·,n ₂]*h where h _(d) ^(τ)[m]

ψ(m+τ)  (27)

Finally in the case of rotate-90 (i.e. clockwise rotation by π/2 radians)

$V = {\begin{bmatrix} 0 & {- 1} \\ 1 & 0 \end{bmatrix}.}$

This simplifies to a simple rearranging of pixels: g^(d)[n₁, n₂]=y^(d)[−n₂, n₁].

B.2 ↓D: Decimation by an integer factor D along the second coordinate. It is a sequence of two operations (a) 1D filtering along the second coordinate with low-pass filter whose passband is (−π/D, π/D) in the DTFT domain i.e. reduces the bandwidth by a factor of D, followed by (b) downsampling by a factor of D along the second coordinate i.e. g^(d)[m, m₂]=y^(d)[m₁, Dm₂]. In the Fourier domain the decimation operator scales the frequency content, expanding it by a factor D, along the coordinate along which the decimation is performed (the second coordinate in this case).

B.3

₀: reprojection at view-angle θ=0. In the discrete-domain this corresponds to summation of the 2D image y^(d) along the second-coordinate to produce a 1D signal p_(d). Let y({right arrow over (x)}) be defined as in (21) using ψ as the 2D sine interpolator, then

$\begin{matrix} {{p_{d}\left\lbrack m_{t} \right\rbrack}\overset{T_{t} = T}{=}{\left( {_{0}y} \right)\left( {m_{t}T} \right)}} & {(28)} \\ {= {\int_{- \infty}^{\infty}{{y\left( {{m_{t}T},s} \right)}{ds}}}} & {(29)} \\ {= {\int_{- \infty}^{\infty}{\sum\limits_{m_{1}}{\sum\limits_{m_{2}}{{y^{d}\left\lbrack {m_{1},m_{2}} \right\rbrack}{\psi_{1}\left( {m_{t} - m_{1}} \right)}{\psi_{2}\left( {\frac{s}{T} - m_{2}} \right)}{ds}}}}}} & {(30)} \\ {{= {\int_{- \infty}^{\infty}{\sum\limits_{m_{2}}{{y^{d}\left\lbrack {m_{t},m_{2}} \right\rbrack}{\psi_{2}\left( {\frac{s}{T} - m_{2}} \right)}{ds}}}}}\mspace{14mu}} & {(31)} \\ {\left\lbrack {{{Since}\mspace{14mu} \psi_{1}\mspace{14mu} {satisfies}\mspace{14mu} (2)},{m_{t} \in {\mathbb{Z}}}} \right\rbrack} & \\ {= {\sum\limits_{m_{2}}{{y^{d}\left\lbrack {m_{t},m_{2}} \right\rbrack}{\int_{- \infty}^{\infty}{{\psi_{2}\left( {\frac{s}{T} - m_{2}} \right)}{ds}}}}}} & {(32)} \\ {\left\lbrack {{{Since}\mspace{14mu} y^{d}},{\psi_{2}\mspace{14mu} {are}\mspace{14mu} {not}\mspace{14mu} {pathological}}} \right\rbrack} & \\ {= {\sum\limits_{m_{2}}{{y^{d}\left\lbrack {m_{t},m_{2}} \right\rbrack}{\int_{- \infty}^{\infty}{{\psi \left( \frac{s}{T} \right)}{ds}}}}}} & {(33)} \\ {\left\lbrack {\frac{s}{T}->{\frac{s}{T} - m_{2}}} \right\rbrack} & \\ {\overset{\lbrack{\psi \mspace{14mu} {is}\mspace{14mu} {sinc}}\rbrack}{=}{T{\sum\limits_{m_{2}}{y^{d}\left\lbrack {m_{t},m_{2}} \right\rbrack}}}} & {(34)} \end{matrix}$

1.2.5 Fourier-Domain Partition Scheme

At each node of the decomposition stage shown in FIG. 7, the input image y^(d) is diverted into three branches. In each branch the image is subject to a discrete-domain shear by a different shear parameter (+2/3, 0 and −2/3) respectively followed by a decimation by a factor D=3.

These particular shear factors are chosen such that if the spectral support of the input image is divided into wedges, then the DTFT of each child image will contain the DTFT of the input image on a different wedge. This is illustrated in diagrams in FIGS. 8A-E. The intermediate images to which these diagrams refer are indicated by callouts on the block diagram in FIG. 7.

FIG. 8A shows the input image y^(d) in the Fourier domain. The notion of spectral support is similar for discrete domain images as it is for continuous domain images. The spectral support of an image y^(d) is the support of its DTFT ŷ^(d) i.e., contained within a square of size [−π, π] x [−π, π]. We are further assuming that the spectral support of the image is restricted to a disc of radius π inscribed inside the square, indicated by the circle.

Consider the three bowtie-like wedges whose right boundaries equally divide the ω₂ axis. We refer to wedges whose principal axis is more aligned with the ω₁ axis than the ω₂ axis as horizontal wedges (eg. wedges W_(1,1), W_(1,2), W_(1,3) in FIG. 9A) and those whose principal axis is more aligned with ω₂ axis as vertical wedges (eg. wedges W_(1,4), W_(1,5), W_(1,6) in FIG. 9A).

In FIG. 8A the dashed diagonal, radial line segment denotes the spectral support of a parallel-beam projection. The radial line segment has length 2π because we are assuming that the spectral support of the image is a disc of radius π. Of the three horizontal wedges in FIG. 8A, one of the wedges is striped while the other two are not. The striped wedge is the one that happens to contain the spectral support of the parallel-beam projection on which we are focusing.

When the image is sheared with shear-parameter +2/3 its spectral support is sheared along the ω₂ axis and the spectral support of the input image is transformed by the matrix

${V^{T} = \begin{bmatrix} 1 & 0 \\ {2/3} & 1 \end{bmatrix}},$

as explained in Section 1.1.3. So the spectral support of the sheared input image is as shown in FIG. 8B. (It is easy to verify that the wedge boundary points

$\left\{ {\begin{bmatrix} \pi \\ {- \pi} \end{bmatrix},\begin{bmatrix} \pi \\ {{- \pi}/3} \end{bmatrix}} \right\}$

get transformed by V^(T) to

$\left. \left\{ {\begin{bmatrix} \pi \\ {{- \pi}/3} \end{bmatrix},\begin{bmatrix} \pi \\ {\pi/3} \end{bmatrix}} \right\} \right)$

Note that the wedge of interest (striped region) is now centered about the ω₁ axis. After the decimation by D=3 the DTFT of the child image is as shown in FIG. 8C, and is stretched to fill the whole ω₂ axis.

For clarity in FIGS. 8A-C we only depict what happens to the subset of the spectral support that we care about. Specifically we design the operations in a particular branch to manipulate the spectral support wedge of interest (striped region) from the parent image and preserve it intact in the child image. For example in the transformation from FIG. 8A to FIG. 8B all the components of the parent image's spectral support are subject to the same transformation, i.e. a shearing along ω₂. This results in the parts of the spectral support that we do not care about being pushed outside the baseband square [−π, π]π[−π, π] and, because of the periodicity of the DTFT, being aliased back into the baseband square. However, the transformations are designed so that the aliased components do not overlap the spectral support wedge of interest. Next in the transformation from FIG. 8B to FIG. 8C all the components of the spectral support are subject to the same transformation a 3-fold stretching along the ω₂ axis and then a restriction/cropping to [−π, π] (assuming the use of an ideal low-pass filter). The low-pass filtering causes the components of the spectral support that we do not care about to be truncated along the ω₂ axis and therefore not preserved intact.

In the transformation depicted in FIGS. 8A-C, it is easy to see that the DTFT of the other two children images will contain the two other (non-striped) wedges respectively. So the DTFT of the images I_(1,m) ^(d) for m=1, 2, 3 will each contain one of the wedges from subplot(i). Because of the rotation-90 block the image I_(1,m) ^(d) for m=4, 5, 6 will contain the equivalent vertically-oriented wedges. Consequently the spectral support of a parallel-beam projection at any view angle θ will be contained in one of the images I_(1,m) ^(d) for m=1, 2, . . . , 6. And the DTFT of each of the 6 images will contain the DTFT of the input image on one of the 6 wedges that partition the spectral support of the input y^(d). This is shown in FIG. 9A. The wedges that partition the whole 2D DTFT domain are denoted by W_(1,m), where m=1, 2, . . . , 6. It is easy to see that the DTFT of the intermediate image I_(1,m) ^(d) contains the spectral content inside wedge W_(1,m).

In the next level, l=2 this same shear and decimate strategy is applied to all input images such that each of the child wedges from level l=1 gets further divided into three child wedges. It is easily shown that the spectral support of a parallel-beam projection at any view angle θ will be contained in the spectral support of one of the images I_(2,m) ^(d) for m=1, 2, . . . , 18. And the DTFT of each of the 18 images will contain one of the 18 wedges that partition the DTFT of the input y^(d). This is shown in FIG. 9B. The DTFT of the intermediate image I_(2,m) ^(d) contains the spectral content inside wedge W_(2,m) where m=1, 2, . . . 18.

Recursively applying this 3-way partitioning of each wedge at every level, it can be shown that after l levels the whole DTFT plane is partitioned into 2·3^(l) non-overlapping wedges—3^(l) horizontally oriented and 3^(l) vertically oriented:

$\begin{matrix} {{{\overset{2 \cdot 3^{l}}{\bigcup\limits_{m = 1}}W_{l,m}} = {\left\lbrack {{- \pi},\pi} \right\rbrack \times \left\lbrack {{- \pi},\pi} \right\rbrack \mspace{14mu} {and}}}{{W_{m_{1}}\bigcap W_{m_{2}}} = {{\varnothing \mspace{14mu} {if}\mspace{14mu} m_{1}} \neq m_{2}}}} & (35) \end{matrix}$

The parameter choices we have described make the decomposition stage of the algorithm highly symmetric and simple. Notice that the subset of the block diagram in which an image I_(l,m) ^(d) is input and three output images are computed {I_(l+1,3(m−1)+i)|i=0, 1, 2}, denoted by the cross-hatched rectangle in FIG. 7, is repeated in a hierarchical manner to build the whole algorithm. The simplicity and symmetry of this structure aids the efficiency of the software implementation.

At the kernel-stage, in FIG. 7, the input images are I_(L,m) ^(d) for m=1, 2, . . . , 2·3^(L). The input image I_(L,m) ^(d) is diverted into B_(m) branches. Each branch corresponds to a parallel-beam projection at a single view angle θ. These B_(m) output views are exactly those whose spectral support lies in wedge W_(L,m) (ref (35)).

In order to compute projection p_(θ), the input image I_(L,m) ^(d) is subjected to a shear-scale tranformation followed by a zero-angle-reprojection

₀, which is simply a summation along the second spatial coordinate. This shear-scale transformation is illustrated in FIGS. 8D-E. FIG. 8D shows the spectral support of the input image. The dashed line is spectral support of the parallel-beam projection of interest which is contained in the wedge of interest (striped region). In order for the algorithm to be correct we want the shear scale transformation to result in the spectral support of the projection to lie on the horizontal axis and be stretched to fill the baseband square, as shown in FIG. 8E. In mathematical terms the shear-scale parameters should be chosen to conform to (20) while accounting for the decimation along the second spatial coordinate. which is included in the discrete algorithm. More details of how this is done for the fan-beam geometry is in Section 1.3.6

1.3 2D Fan-Beam Geometry

Now that we have described a simplified form of the RP algorithm for simpler parallel-beam geometries, we are ready to describe it for the 2D fanbeam geometry. The algorithms that we describe in the rest of this document are preferred embodiments that make several specific design decisions such as in choosing the structure of the hierarchical tree and the operators and their parameters. Other similar embodiments that make different design decisions may be similarly efficient and accurate.

Here we introduce the terminology fast and slow coordinate directions. We refer to the coordinate along which the decimation is performed as the slow coordinate direction. This word encapsulates the idea that the bandwidth of an image, after one or more low-pass filtering operations along a single coordinate direction, is small along that coordinate. Therefore the image is slowly varying along that coordinate. In contrast the other coordinate direction is referred to as the fast coordinate direction. We use the subscripts f and s for fast and slow, respectively.

In the 2D fanbeam geometry, the input is a 2D image y^(d)[m₁, m₂] and the output is a set of projections for the fan-beam geometry. In the typical case this 2D data set is the set of samples {p[n_(β), n_(α)]|n_(β)=1,2, . . . , N_(β) and n_(α)=1, 2, . . . , N_(α)}. The output sample p[n_(β), n_(β)] corresponds to a ray whose fan-beam parameters are view-angle β[n_(β)] and fan-angle α[n_(α)].

The differences between the fan-beam method that we describe here and the simplified parallel-beam method described in Section 1.2 are as follows.

-   -   1. At the kernel-stage of the hierarchy the image transformation         is not a simple shear-scale. Since the output projections are         for the fan-beam geometry, a transformation equivalent to a         parallel-to-fan mapping is incorporated into the shear-scale         operator. For any ray in the fan-beam geometry, the         fan-to-parallel transformation specifies what the         parameterization of that ray would be in the parallel-beam         geometry, i.e., view-angle θ∈[−π/4, 3π/4) and         detector-coordinate t.     -   2. The intermediate images are over-sampled i.e., digitally         interpolated to a denser sampling grid. The oversampling         parameters (γ_(s), γ_(f)) control the oversampling in the slow         and fast direction of every intermediate image. Increasing         oversampling improves the accuracy of the computed projections.         The incorporation of the oversampling modifies the formulas for         the decimation factor in level l=1 and the shear-parameters in         the rest of the decomposition stage.

1.3.1 Fourier-Domain Partition Scheme

Just as in the parallel-beam geometry (Section 1.2.4) we design the hierarchical application of shears and decimations to manipulate the frequency content of the input image such that any fan-beam projection ray can be computed from one of the input images in the kernel-stage.

We choose the same Fourier domain partitioning scheme described in the previous section on the parallel-beam geometry (Section 1.2 and FIG. 7). So after level l=L, the DTFT domain has been recursively partitioned into 2·3^(L) wedges (use 1=L in Equation (35)). This is shown in FIGS. 10A-10B. Let the region in the 2D DTFT domain corresponding to parallel-beam view angle θ∈[−π/4, +π/4) be defined as the zeroeth (or horizontally oriented) half-plane denoted by the speckled region in FIG. 10A. And let the region in the 2D DTFT domain corresponding to parallel-beam view angle θ∈[π/4, +3π/4) be defined as the first (or vertically oriented) half-plane: the remaining non-speckled region in FIG. 10A.

Let the half-plane be divided into 3^(L) wedges {W_(L,m)} as shown in FIG. 10B. The wedges indexed by m=1, 2, . . . , 3^(L) lie in the horizontally-oriented half-plane and the wedges indexed by m=3^(L)+1, 3^(L)+2, . . . , 2·3^(L) lie in the vertically-oriented half-plane. The length of the edge of a wedge along the square boundary of the DTFT support is equal to Δ_(wedge)=2π/3^(L). For the wedges in the horizontally-oriented half plane the corners, on the right hand side, of the m^(th) wedge are at:

(π,−π+Δ_(wedge)(m−1)) and(π,−π+Δ_(edge) m)  (36)

The wedges in the vertically-oriented half-plane are obtained by applying a counter-clockwise π/2-rotation to the wedges in the horizontally-oriented half-plane.

Any ray in the 2D tomographic geometry can be parameterized by (θ, t) such that θ∈[−π/4, +3π/4). Recall, from Sec 1.1.1, that a ray is the line upon which the tomographic line-integral of the object is computed. So the line-integral along a ray parameterized by (θ, t) is a sample of the continuous-domain parallel-beam projection at view-angle θ. Conversely a continuous-domain parallel-beam projection parameterized by view-angle θ is the set of line-integrals along all rays (σ,t): ∀t ∈

. By the Fourier slice theorem (17-18) the 1D Fourier transform of this parallel-beam projection

_(θ)f is equal to a radial cut through the 2D Fourier transform of the (continuous-domain) image y oriented at an angle θ. Consequently the information necessary to compute the line integral along the ray (θ, t) is contained in a radial cut, oriented at angle θ, through the 2D Fourier transform of y.

Assuming that the continuous-domain image y is bandlimited to a disc and a sufficient sampling rate is used to sample the image to produce y^(d), we can state the discrete-domain equivalent of the Fourier slice theorem as follows. The 1D DTFT of the parallel-beam projection

_(θ)y^(d) (which is defined as interpolating y^(d) onto the continuous domain using the sinc interpolator, computing the continuous-domain parallel-beam projection, and resampling the projection) is equal to a radial cut through the 2D DTFT of the image y^(d) oriented at an angle θ. The notion of a ray still holds in the discrete domain. Specifically, the line integral of y^(d) along ray (θ, t) is defined as interpolating y^(d) onto the continuous domain using the sinc interpolator, and then computing the continuous domain line integral along ray (θ, t).

So given a radial cut, at an angle θ, through the 2D DTFT of the image y^(d), (a “θ-cut”) we can compute the parallel-beam projection of y^(d) at view-angle θ. More explicitly, given this θ-cut, we can compute the projection along any ray whose parameterization is (θ, t). Conversely in order to compute the projection along a ray (θ, t) all we need is the θ-cut through 2D DTFT of the image y^(d). Note that any θ-cut will be fully contained within one of the 2·3^(L) wedges shown in FIG. 10B. So the information necessary to compute the projection of the image y^(d) along ray (θ, t) will be fully contained in one of the 2·3^(L) wedges shown in FIG. 10B. For brevity we say that the ray with view-angle θ “is contained” in one of the 2·3^(L) wedges.

For a ray with parallel-beam view-angle θ∈[−π/4, +π/4), it can shown, by examining FIG. 10B, that the wedge index m_(KER)(θ) of the wedge that contains this ray is

${m_{KER}(\theta)} = {1 + \left\lfloor \frac{{\pi \; \tan \; \theta} - \left( {- \pi} \right)}{\Delta_{wedge}} \right\rfloor}$

where └ ┘ is the usual floor function

For a ray with view-angles θ∈[π/4, +π/4), this formula needs to be modified to take into account the rotation by π/2. So the full expression for the mapping function m_(KER) is:

$\begin{matrix} {{m_{KER}(\theta)} = \left\{ \begin{matrix} {1 + \left\lfloor \frac{{\pi \; \tan \; \theta} - \left( {- \pi} \right)}{{\Delta \;}_{wedge}} \right\rfloor} & {{{if}\mspace{14mu} \theta} \in \left\lbrack {{{- \pi}/4},{{+ \pi}/4}} \right)} \\ {3^{L} + 1 + \left\lfloor \frac{{\pi \; {\tan \left( {\theta - \frac{\pi}{2}} \right)}} - \left( {- \pi} \right)}{\Delta_{wedge}} \right\rfloor} & {{{if}\mspace{11mu} \theta} \in \left\lbrack {{\pi/4},{{+ 3}{\pi/4}}} \right)} \end{matrix} \right.} & (37) \end{matrix}$

Furthermore this means that the line integral along a ray with view-angle θ∈[−π/4, +π/4) can be computed from the kernel-stage image I_(L,m) _(KER(θ)) ^(d).

More generally, for an arbitrary intermediate level l in the decomposition tree, the line integral along the ray with view-angle θ could be computed from the image I_(l,m(θ,l)) where

$\begin{matrix} {{m\left( {\theta,l} \right)} = \left\{ \begin{matrix} {1 + \left\lfloor \frac{{\pi \; \tan \; \theta} - \left( {- \pi} \right)}{\Delta_{l}} \right\rfloor} & {{{if}\mspace{14mu} \theta} \in \left\lbrack {{{- \pi}/4},{{+ \pi}/4}} \right)} \\ {3^{l} + 1 + \left\lfloor \frac{{\pi \; {\tan \left( {\theta - \frac{\pi}{2}} \right)}} - \left( {- \pi} \right)}{\Delta_{l}} \right\rfloor} & {{{if}\mspace{14mu} \theta} \in \left\lbrack {{\pi/4},{{+ 3}\; {\pi/4}}} \right)} \end{matrix} \right.} & (38) \end{matrix}$

Here Δ_(l)=2π/3^(l). Conversely, given an arbitrary intermediate image I_(l,m), the set of rays whose line-integrals can be computed from it are those with view-angle θ∈[θ_(min) ^(l,m), θ_(max) ^(l,m)] where

$\begin{matrix} {\theta_{m\; i\; n}^{l,m} = \left\{ {\begin{matrix} {\arctan \left( \frac{{- \pi} + {\left( {m - 1} \right)\Delta_{l}}}{\pi} \right)} & {{{if}\mspace{14mu} m} \in \left\{ {1,2,\ldots \mspace{11mu},3^{l}} \right\}} \\ {\frac{\pi}{2} + {\arctan \left( \frac{{- \pi} + {\left( {m - 3^{l}} \right)\Delta_{l}}}{\pi} \right)}} & {{{if}\mspace{14mu} m} \in \left\{ {{3^{l} + 1},{3^{l} + 2},\ldots \mspace{11mu},{2 \cdot 3^{l}}} \right\}} \end{matrix}\mspace{20mu} {and}} \right.} & (39) \\ {\theta_{{ma}\; x}^{l,m} = \left\{ \begin{matrix} {\arctan \left( \frac{{- \pi} + {m\; \Delta_{l}}}{\pi} \right)} & {{{if}\mspace{14mu} m} \in \left\{ {1,2,\ldots \mspace{11mu},3^{l}} \right\}} \\ {\frac{\pi}{2} + {\arctan \left( \frac{{- \pi} + {\left( {m - 3^{l} + 1} \right)\Delta_{l}}}{\pi} \right)}} & {{{if}\mspace{14mu} m} \in \left\{ {{3^{l} + 1},{3^{l} + 2},\ldots \mspace{11mu},{2 \cdot 3^{l}}} \right\}} \end{matrix} \right.} & (40) \end{matrix}$

1.3.2 Oversampling

In order to control the tradeoff between accuracy and computational cost of the overall algorithm an oversampling by factors of γ_(s) and γ_(f) in the slow and fast directions, respectively, is used. Thus the intermediate images in algorithm will be oversampled by (γ_(s), γ_(f)).

The previously described block diagram in FIG. 7 is modified in order to incorporate oversampling. As shown in FIG. 11, prior to the start of the decomposition level an up-interpolation along each coordinate direction: ↑_(s) U_(s) and ↑_(f) U_(f) is applied.

Recall the definition of a discrete-domain image transformation operator from B.1 in Section 1.2.4. The fast-direction up-interpolation operator by a factor U_(f) denoted by ↑_(f) U_(f) (and respectively the slow direction up-interpolation by factor U_(s) denoted by ↑_(s) U_(s)) is defined as a discrete-domain image transformation operator in which the spatial domain transformation matrix is

$V = \begin{bmatrix} {1/U_{f}} & 0 \\ 0 & 1 \end{bmatrix}$

(and respectively

$\left. {V = \begin{bmatrix} 1 & 0 \\ 0 & {1/U_{s}} \end{bmatrix}} \right)$

1.3.3 Pre-Decomposition Stage

Here we outline how the shear, decimation and up-interpolation parameters are modified to incorporate the chosen oversampling factors (γ_(s), γ_(f)). The frequency domain manipulations in the top level of the algorithm are depicted in FIGS. 12A-12D. FIG. 12A shows the input image in the Fourier domain.

The first image transformation is an up interpolation in each coordinate direction by U_(s) and U_(f) (shown in the left branch of the block diagram in FIG. 11 and the top row of FIGS. 12A-12B). Consider what happens to the cross-hatched wedge in FIG. 11A upon this image transformation: the bandwidth of the cross-hatched wedge is now (π/U_(s), π/U_(f)) as shown in FIG. 12B.

Now we have traversed one level of the block diagram in FIG. 11 to the image I_(0,1) ^(d). Let us follow one child branch of this ternary node (the left of the two ternary nodes in level 1=1). The child wedge of interest is cross-hatched, in FIG. 12B, while the other two wedges are striped. Following the shear, the child wedge is centered about the ω_(f) axis, as shown in FIG. 12C. The slow bandwidth of the child wedge is π/(3U_(s)) and the slow bandwidth of the parent wedge increases to 5π/(3U_(s)) due to the shearing. Because of the periodicity of the DTFT the parts extending beyond the +π boundaries are wrapped in the [−π, π] interval along ω_(s) but this is not shown for simplicity. Finally after decimation by the integer factor D_(s) the slow bandwidth of the child wedge is at D_(s)π/(3U_(s)) as shown in FIG. 12D. The other two wedges are similarly stretched (due to the downsampling) and clipped along ω_(s) (due to the low pass filtering).

We choose U_(f) such that the images following up-interpolation are oversampled by a factor of γ_(f) i.e. π/U_(f)=π/γ_(f). So U_(f)=γ_(f).

We choose the integer D_(s) such that that slow bandwidth of the child wedge after decimation is π/γ_(s) i.e.

$\frac{D_{s}\pi}{3U_{s}} = {{\frac{\pi}{\gamma_{s}}D_{s}} = \frac{3U_{s}}{\gamma_{s}}}$

Furthermore we want π/U_(s)≤π/γ_(s) in order to enforce the prescribed oversampling so U_(s)≥γ_(s). Consequently we choose D_(s)≥(3U_(s)/γ_(s))≥3. A larger D_(s) will improve image quality (since the slow bandwidth of the parent wedge after the shear, as seen in FIG. 12C, is inversely proportional to D_(s)), but will increase the size of the up-interpolated image (since U_(s) is proportional to D_(s)).

1.3.4 Decomposition Stage: Decimation

In level l=1, the decimation factor is chosen as described in Section 1.3.3 to accommodate the up-interpolation. But in all other levels the decimation factor is set to 3.

1.3.5 Decomposition Stage: Shear-Parameters

FIG. 13A depicts the partition of the Fourier-plane at the input to a decomposition level. The three wedges correspond to the spectral support regions that we want to preserve intact in each of the three child images indexed by m=0, 1, 2.

Since the three child images are produced by shearing the parent image by three different shear factors (−μ_(l), 0, μ_(l)), the shear-factor μ_(l) is computed by figuring out the shear along the slow direction that can be applied to the parent image to center the m=2 child wedge about the ω_(f) axis.

Recall from Section 1.1.3, that if a spatial domain image is sheared by μ_(l) i.e. g({right arrow over (x)})=y(V{right arrow over (x)}) where

${V = \begin{bmatrix} 1 & \mu_{l} \\ 0 & 1 \end{bmatrix}},$

then tie spectral support undergoes the following transformation:

$W_{g} = {{V^{T}W_{f}} = {\begin{bmatrix} 1 & 0 \\ \mu_{l} & 1 \end{bmatrix}{W_{f}.}}}$

Examining FIGS. 13A-13B, we want to find the μ_(l) such that the spectral support denoted by the cross-hatched wedge in FIG. 13A is transformed to the cross-hatched wedge in FIG. 13B. Consider, for example, the right corner points of the wedge marked by the dots. We know that (π/γ_(f), π/γ_(s)) will be transformed to (π/γ_(f), π/(3γ_(s))) so:

$\begin{matrix} {\begin{bmatrix} {\pi/\gamma_{f}} \\ {\pi/\left( {3\gamma_{s}} \right)} \end{bmatrix} = {{{\begin{bmatrix} 1 & 0 \\ \mu_{l} & 1 \end{bmatrix}\begin{bmatrix} {\pi/\gamma_{f}} \\ {\pi/\gamma_{s}} \end{bmatrix}}\frac{1}{3\gamma_{s}}} = {{\frac{\mu_{l}}{\gamma_{f}} + {\frac{1}{\gamma_{s}}\frac{\mu_{l}}{\gamma_{f}}}} = {{- {\frac{2}{3\gamma_{s}}\mu_{l}}} = {- \frac{2\gamma_{f}}{3\gamma_{s}}}}}}} & (41) \end{matrix}$

This equation specifies a preferred choice for the shear factor μ_(l).

1.3.6 Kernel Stage

Recall that in the case of the parallel-beam geometry (FIG. 7), a single parallel-beam projection at angle θ is computed from a kernel-stage image by performing a shear-scale image transformation followed by a zero-angle projection i.e. p_(q)=

₀

(σ _(q)). This two step operation is illustrated in FIGS. 14 A-B.

Let I^(d)[m_(f), m_(s)] be the input image to the kernel-stage in this branch (denoted by “(iv)” in FIG. 7), where m_(f)=−N_(f), −N_(f)+1, . . . , +N_(f) and m_(s)=−N_(s), −N_(s)+1, . . . , +N_(s), and let the output after the shear-scale operation be g^(d)=

(σ₁, σ₂)I^(d) (denoted by “(v)” in FIG. 7). Then, by the definition of the discrete-domain shear-scale (21),

$\begin{matrix} {{g^{d}\left\lbrack {n_{t},m_{s}} \right\rbrack} = {\sum\limits_{m_{f}}{{I^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}{\psi \left( {{\sigma_{1}n_{t}} + {\sigma_{2}m_{s}} - m_{f}} \right)}}}} & (42) \end{matrix}$

where n_(t) is the detector index of the output projections.

This can be interpreted as interpolating the input image I^(d) along the fast direction (i.e. along index m_(f)) onto a set of lines indexed by n_(t), and where the n_(t) ^(th) line is the set of points {(σ₁n_(t)+σ₂m_(s), m_(s))|m₂=−N_(s), −N_(s)+1, . . . , +N_(s)}. This set of points, shown by the large black dots in FIG. 14A, lies on a set of parallel lines with a slope σ₂ relative to the slow coordinate axis and separated by σ₁ along the fast coordinate axis. The output of the shear-scale operation is an image g^(d)[n_(t), m_(s)] which is then subject to the zero-view projection operator

₀, which is a summation along the slow coordinate as explained in B.3 i.e. p[n_(θ),n_(t)]=Σ_(m) _(s) g^(d)[n_(t), m_(s)]. This is illustrated in FIG. 14B, where the black dots represent the pixels of the image g^(d)[n_(t), m_(s)].

It follows that the parallel-beam kernel-stage operation can be rephrased as a sequence of two operations: (i) a fast-direction 1D interpolation of the 2D kernel-stage input image onto a set of parallel lines, and (ii) summation along the slow direction (i.e., over m_(s)) in order to produce a full parallel-beam projection at a single view-angle θ. The reason that the lines are parallel is that all the rays share the same PB view-angle θ.

In the case of the fan-beam geometry, typically no two rays share the same parallel-beam view-angle θ. So the fan-beam kernel-stage operation, shown in FIG. 14C-D, is exactly the same as the parallel-beam kernel-stage operation except that the fast-direction 1D interpolation is onto a set of non-parallel lines. Each line corresponds to a ray with fan-beam parameters (β, α), and is the set of points {(a_(β,α)+b_(β,α)m_(s), m_(s))|m_(s)=−N_(s), −N_(s)+1, . . . , +N_(s)} shown by the black dots in FIG. 14C. The parameters of the fast direction interpolation (a_(α,β), b_(β,α)) are a function of the fan-beam view-angle and fan-angle of the particular ray. So the equation for the fast-direction interpolation in the case of the fan-beam geometry can be restated as follows, using the interpolation shorthand defined in 1.1.5:

g _(β,α) ^(s)[m _(s)]=I ^(d)[h ^(β,α)[m _(s)],m _(s)]  (43)

where h^(β,α)[m_(s)]=a_(β,α)+b_(β,α)m_(s) is the equation of the line onto which the interpolation is performed. We refer to {h^(β,α)[m_(s)]|m_(s)∈

)} as the kernel-stage interpolation coordinates for this ray.

The output {_(β,α) ^(d) [m_(s)], m_(s)=−N_(s), . . . , N_(s)} of the interpolation for a particular ray parameterized by (β, α) is represented as a column in FIG. 14D. Different columns in FIG. 14D correspond to different rays (β_(k), α_(k)). Summing over m_(s) produces the corresponding line integral along the ray parameterized by (β, α). Each such line integral corresponds to a sample (i.e., entry) in the output array p[n_(α), n_(β)].

Consider instead the whole kernel-stage interpolation operation as a single operator that takes as input a 2D discrete-domain image I^(d) and produces as output the 2D discrete-domain data set constructed by stacking all the columns of FIG. 14D side-by-side. There is no obvious ordering of these columns, but assume that the output data set consists of columns representing all the rays that would be computed from this kernel-stage input image. Then this operator can be seen as performing several 1D interpolations, as defined in (3)—one for each row of I^(d).

The rest of this section explains how the kernel-stage interpolation coordinates h^(β,α)[m_(s)] are computed. In short, the ray coordinates are first transformed from the fan-beam geometry to the parallel-beam geometry. Then the cumulative image transformation from the input of the decomposition stage to the appropriate kernel-stage image from which the ray is synthesized is computed. This image transformation is used to compute the coordinates of the ray in the kernel-stage image i.e., the interpolation coordinates.

(a) Mapping Between Fan-Beam and Parallel-Beam Geometries:

Consider a single output ray in the fanbeam geometry with view-angle β and fan-angle α. First it is mapped to the parallel-beam geometry, using the standard fan-to-parallel transformation, as illustrated in FIG. 15. Here the source, depicted by the large dot in the lower right corner, is located at a distance D from the origin and the ray of interest is shown by the dashed arrow emanating from the source. The coordinates of the ray in the parallel-beam and fan-beam geometries are (θ, t) and (β, α) respectively. The fan-to-parallel transformation equations are as follows:

θ=(β−α) and t=D sin α  (44)

We modify the parallel-beam parameters given by (44) in two ways.

(i) Restrict θ to

$\left\lbrack {{- \frac{\pi}{4}},\frac{3\pi}{4}} \right):$

Recall that while (44) returns a view-angle θ∈

, the Fourier partition scheme (FIGS. 10A-10B) and Equation (37) that identifies the kernel-stage image from which a given ray should be synthesized, assume that

$\theta \in {\left\lbrack {{- \frac{\pi}{4}},\frac{3\pi}{4}} \right).}$

So we find the equivalent parameterization (θ′, t′) of (44) such that

$\theta^{\prime} \in \left\lbrack {{- \frac{\pi}{4}},\frac{3\pi}{4}} \right)$

(which is always possible for any ray in the 2D tomographic geometry).

(ii) Exploit symmetry due to

$\frac{\pi}{2}$

rotation: In order to simplify and unify the kernel stage parameter equations we can exploit the symmetry introduced by

$\frac{\pi}{2}$

rotation in the right branch of the top level hierarchy (FIG. 11).

From the Fourier-domain partitioning description (Section 1.3.1, FIG. 10 and Equation (37)) we know that rays that lie in the horizontally-oriented half-plane are computed from the left half of the hierarchy (i.e. one of the images I_(L,1) ^(d), . . . , I_(L,3) _(L) ^(d)) and the rays that lie in the vertically-oriented half-plane are computed from the right half of the hierarchy (i.e. one of the images I_(L,3) _(L) ₊₁ ^(d), . . . , I_(L,2·3) _(L) ^(d)).

Furthermore, consider what happens to the vertically-oriented half-plane after the

$\frac{\pi}{2}$

rotation the vertically-oriented half-plane (the non-shaded region in FIG. 10A) gets rotated clockwise by

$\frac{\pi}{2}$

and is therefore now in the original location of the horizontally-oriented half-plane. Similarly every wedge W_(L,m) in the vertically-oriented half-plane gets rotated to the location of the wedge W_(L,m−3) _(L) in the horizontally-oriented half-plane (ref FIG. 10B). Therefore the kernel-stage parameter computations should only depend on the value of the view-angle relative to the half-plane, not the original absolute value.

Considering the modifications (i) and (ii) above, given the fan-beam parameters of a ray (β, α) we want to be able to (a) identify in which half-plane it is contained; and (b) compute the parameterization of that ray relative to that half-plane i.e. (θ′, t′) where

$\theta^{\prime} \in {\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right).}$

The equations that compute the index of the half-plane n_(HP) and the relative PB parameterization within that half-plane (Θ_(HP), T_(HP)) are as follows. Here % denotes modulo. Given (θ, t) as defined in (44), we compute the index of the half-plane n_(HP)(θ) in which the ray with view-angle θ lies, and the corresponding relative view-angle Θ_(HP)(θ) and detector coordinate T_(HP)(θ, t) within that half-plane as follows:

$\begin{matrix} {{n_{HP}(\theta)}\overset{\Delta}{=}{{{{\overset{\sim}{n}}_{HP}(\theta)}{\% 2}\mspace{20mu} {for}\mspace{14mu} \theta} \in {\mathbb{R}}}} & (45) \\ {{{where}\mspace{14mu} {{\overset{\sim}{n}}_{HP}(\theta)}}\overset{\Delta}{=}\left\lfloor {\left( {\theta - \left( {- \frac{\pi}{4}} \right)} \right)/\frac{\pi}{2}} \right\rfloor} & (46) \\ {{\Theta_{HP}(\theta)}\overset{\Delta}{=}{\left( {- \frac{\pi}{4}} \right) + \left( {\left( {\theta - \left( {- \frac{\pi}{4}} \right)} \right)\% \frac{\pi}{2}} \right\rfloor}} & (47) \\ {{T_{HP}\left( {\theta,t} \right)} = \left\{ \begin{matrix} t & {{{{if}\mspace{14mu} {{\overset{\sim}{n}}_{HP}(\theta)}\mspace{14mu} {is}} \in \ldots}\mspace{14mu},0,1,4,5,\ldots} \\ {- t} & {{{{if}\mspace{14mu} {{\overset{\sim}{n}}_{HP}(\theta)}\mspace{14mu} {is}} \in \ldots}\mspace{14mu},2,3,6,7,\ldots} \end{matrix} \right.} & (48) \end{matrix}$

Equation (46) take as input any angle θ∈

and identifies which of the following intervals it lies in:

$\left\{ {\ldots \mspace{14mu},\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right),\left\lbrack {\frac{\pi}{4},\frac{3\pi}{4}} \right),\ldots}\mspace{14mu} \right\} = {\left\{ {\left\lbrack {{{{\overset{\sim}{n}}_{HP}\frac{\pi}{2}} - \frac{\pi}{4}},{{{\overset{\sim}{n}}_{HP}\frac{\pi}{2}} + \frac{\pi}{4}}} \right):{\forall{{\overset{\sim}{n}}_{HP} \in {\mathbb{Z}}}}} \right\}.}$

These length

$\frac{\pi}{2}$

intervals partition the whole real line. The intervals are indexed by an integer ñ_(HP) such that the ñ_(HP)=0 interval is

$\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right).$

Θ_(HP)(θ) is the relative angle within that interval i.e. if θ lies in the interval [a, b) then Θ_(HP)(θ)=θ−(a+b)/2. Note that ñ_(HP) can be any integer, but we want to assign it to either the horizontally or vertically-oriented half-planes so we simply apply modulo-2 in order to map all the even (and respectively odd ñ_(HP)) to the horizontally-oriented half-plane (and, respectively, the vertically-oriented half-plane) as specified in (45). The equation for detector coordinate (48) simply applies the well-known identity for the parallel-beam tomographic geometry that the ray (θ, t) is equivalent to the ray (θ+π, −t).

To summarize: given a ray with fan-beam parameters (β, α) we first apply the fan-to-parallel transformation as specified in (44), to get (θ, t). We then apply (45) to determine the half-plane (n_(HP) ∈{0, 1})) in which the ray lies. Then we apply (47) and (48) to determine the relative parallel-beam parameterization (θ′, t′) of that ray within the halfplane where θ′=θ_(HP)(θ) and t′=T_(HP)(θ, t).

(b) Cumulative Image Transformation in Decomposition Stage:

The computation of the kernel-stage interpolation coordinates is illustrated in FIGS. 16A-16D. FIG. 16A shows the spectral support of the image at the input of the algorithm (image y^(d) in FIG. 11).

Consider the ray whose parallel beam view-angle relative to the horizontally-oriented half-plane is θ′. We want to determine the spectral support of this ray, i.e., a subset of the spectral support of the image from which the ray can be computed. Recall, from (44), that this is the ray whose fan-beam parameterization is (β, α). The spectral support of this ray does not depend on the geometry of the output projections. So in order to understand its spectral support it helps to totally ignore the fan-beam geometry and only focus on the parallel-beam projection in which it is contained in i.e., the PB projection with view-angle θ′. Now, from the Fourier Slice Theorem, we know that the spectral support of this ray within the DTFT of image y^(d) (from FIG. 11) is a radial line oriented at an angle θ′ relative to the ω_(f) axis, i.e. the dashed radial line in FIG. 16A.

From (37), we can compute the index of the kernel-stage input image m_(KER)(θ′) from which this projection is computed. From Section 1.3.1 recall that every kernel-stage input image corresponds to one of the 2·3^(L) wedges that partition the frequency plane. The wedge, whose index is m_(KER)(θ′), corresponding to the projection with PB view angle θ′ is shown in FIGS. 16A-16D as the cross-hatched region containing the dashed radial line. We know, from (36), that the right side corner points of this wedge are (π, −π+Δ_(edge)(m_(KER)(θ′)−1)), (π, −π+Δ_(wedge)m_(KER)(θ′)).

FIG. 16B shows the spectral support of the kernel-stage image I_(L,m) _(KER) _((θ′)) ^(d). We can then compute the cumulative image transformation from the input image y^(d) in FIG. 11 to I_(L,m) _(KER) _((θ′)) ^(d), the kernel-stage input image from which projection θ′ is computed. The wedge, in the frequency domain, that “contains this projection”, W_(L,m) _(KER) _((θ)) is denoted by the cross-hatched region in FIGS. 16A-B. The image transformation consists of the following operations:

(i) A shear by α_(eff) along ω_(s) that when applied to W_(L,m) _(KER) _((θ′)) in FIG. 16A, centers it about the ω_(f) axis, as shown in FIG. 16B. It follows that the shear parameter α_(eff) is determined using the following expression:

$\begin{matrix} {\begin{bmatrix} \pi \\ {{- \Delta_{wedge}}/2} \end{bmatrix} = {\begin{bmatrix} 1 & 0 \\ \alpha_{eff} & 1 \end{bmatrix}\begin{bmatrix} \pi \\ {{- \pi} + {\Delta_{wedge}{m_{KER}\left( \theta^{\prime} \right)}}} \end{bmatrix}}} & (49) \\ {{\alpha_{eff}} = {1 - {\frac{\Delta_{wedge}}{\pi}\left( {{m_{KER}\left( \theta^{\prime} \right)} + 0.5} \right)}}} & (50) \end{matrix}$

(ii) Up-interpolation by a factor of (γ_(f), γ_(s)), and

(iii) Decimation by a factor of 3^(L) in the slow direction. So the cumulative or effective transformation, in the frequency domain, from the start of the algorithm to the input to the kernel-stage is as follows

$\begin{matrix} {{\begin{bmatrix} {1/\gamma_{f}} & 0 \\ 0 & {3^{L}/\gamma_{s}} \end{bmatrix}\begin{bmatrix} 1 & 0 \\ \alpha_{eff} & 1 \end{bmatrix}} = {\begin{bmatrix} {1/\gamma_{f}} & 0 \\ {\alpha_{eff}{3^{L}/\gamma_{s}}} & {3^{L}/\gamma_{s}} \end{bmatrix}\overset{\Delta}{=}A_{eff}}} & (51) \end{matrix}$

(c) Fast-direction interpolation:

In order to compute the kernel-stage fast-direction interpolation coordinates for a particular ray (β, α), we start with the location of two points along the ray in the original continuous-domain object y({right arrow over (x)}), then compute the location of those two points in the discrete-domain image y^(d)({right arrow over (m)}), and then use the knowledge of the cumulative image transformation in the decomposition stage. A_(eff), to transform those two points to the kernel-stage image.

Consider a ray whose parallel-beam parameterization is (θ′, t′) in the domain of the object y({right arrow over (x)}). Consider the two points at which the ray that intersects the coordinate axes x₁ and x₂. From FIG. 2B it is easy to see that these two points are [t′/cos θ′, 0] and [0, t′/sin θ′]. Assuming that the pixel size of the input image is T then the discrete-domain image: y^(d)[m₁, m₂]=y(m₁T, m₂T).

Let

${\theta^{\prime} \in \left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right)},$

so that we consider the non-rotated branch of the hierarchy in FIG. 11 in which I_(0,1) ^(d)=y^(d). So the coordinates of the two points in the domain of I_(0,1) ^(d) (in FIG. 11), denoted v₀ and η₀, and shown in FIG. 16C are as follows:

$\begin{matrix} {{\overset{\rightarrow}{\upsilon}}_{0} = {{\begin{bmatrix} {t^{\prime}/\left( {T\; \cos \; \theta^{\prime}} \right)} \\ 0 \end{bmatrix}\mspace{14mu} {and}\mspace{14mu} {\overset{\rightarrow}{\eta}}_{0}} = \begin{bmatrix} 0 \\ {t^{\prime}/\left( {T\; \sin \; \theta^{\prime}} \right)} \end{bmatrix}}} & (52) \end{matrix}$

Note that even though I_(0,1) ^(d) is a discrete domain image the vectors {right arrow over (u)}₀ and {right arrow over (v)}₀ could have non-integer, fractional values.

From Section 1.1.3 we know that if the Fourier transform of an image is subject to the transformation V^(T) then any point in the spatial domain will be subject to the transformation V⁻¹. Since we know that the Fourier domain coordinate transformation between image I_(1,0) ^(d) and I_(L,m) _(KER) _((θ′)) ^(d) is A_(eff), it follows that in order to find the location of points {right arrow over (u)}₀ and {right arrow over (v)}₀ when transformed to the kernel-stage image, we need to apply a coordinate transformation by A_(eff) ^(−T). Denote the two matrices on the LHS of (51) as A₁ and A₂, i.e. A_(eff)=A₁A₂. Then A_(eff) ^(T)=A₂ ^(T)A₁ ^(T) and A_(eff)=A₁ ^(−T)A₂ ^(−T), by the usual linear algebra identities. So

$\begin{matrix} \begin{matrix} {A_{eff}^{- T} = {\begin{bmatrix} {1/\gamma_{f}} & 0 \\ 0 & {3^{L}/\gamma_{s}} \end{bmatrix}^{- 1}\begin{bmatrix} 1 & \alpha_{eff} \\ 0 & 1 \end{bmatrix}}^{- 1}} \\ {= {{\begin{bmatrix} \gamma_{f} & 0 \\ 0 & {\gamma_{s}/3^{L}} \end{bmatrix}\begin{bmatrix} 1 & {- \alpha_{eff}} \\ 0 & 1 \end{bmatrix}}(54)}} \\ {= \begin{bmatrix} \gamma_{f} & {{- \alpha_{eff}}\gamma_{f}} \\ 0 & {\gamma_{s}/3^{L}} \end{bmatrix}} \end{matrix} & (53) \end{matrix}$

Denoting the transformed points as {right arrow over (v)}_(L) and {right arrow over (η)}_(L), then

$\begin{matrix} \begin{matrix} {{\overset{\rightarrow}{\upsilon}}_{L} = {A_{eff}^{- T}{\overset{\rightarrow}{\upsilon}}_{0}}} \\ {= {\begin{bmatrix} \gamma_{f} & {{- \alpha_{eff}}/\gamma_{f}} \\ 0 & {\gamma_{s}/3^{L}} \end{bmatrix}\begin{bmatrix} {t^{\prime}/\left( {T\; \cos \; \theta^{\prime}} \right)} \\ 0 \end{bmatrix}}} \\ {= {\frac{t^{\prime}}{T}\begin{bmatrix} {{\gamma_{f}/\cos}\; \theta^{\prime}} \\ 0 \end{bmatrix}}} \end{matrix} & (55) \\ \begin{matrix} {{\overset{\rightarrow}{\eta}}_{L} = {A_{eff}^{- T}{\overset{\rightarrow}{\eta}}_{0}}} \\ {= {\begin{bmatrix} \gamma_{f} & {{- \alpha_{eff}}/\gamma_{f}} \\ 0 & {\gamma_{s}/3^{L}} \end{bmatrix}\begin{bmatrix} 0 \\ {t^{\prime}/\left( {T\; \sin \; \theta^{\prime}} \right)} \end{bmatrix}}} \\ {= {\frac{t^{\prime}}{T}\begin{bmatrix} {{- \alpha_{eff}}{\gamma_{f}/\sin}\; \theta^{\prime}} \\ {{- \gamma_{s}}/\left( {3^{L}\sin \; \theta^{\prime}} \right)} \end{bmatrix}}} \end{matrix} & (56) \end{matrix}$

Recall from FIG. 14C that we perform a fast-direction interpolation onto a set of non-parallel lines, where each line corresponds to a ray. Equations (55)-(56), which specify the coordinates of two points on that line for a ray with PB parameterization (θ′, t′), are sufficient to figure out the coordinates of the resampled points. Recall from (43) that the equation of the line in FIG. 16D is denoted by m_(f)=h^(β,α)[m_(s)]. Applying similarity of triangles to the two triangles indicated by the dotted black lines in FIG. 16D, it is easy to see that

$\begin{matrix} \begin{matrix} {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} = {\upsilon_{L}^{f} + {m_{s}\frac{\eta_{L}^{f} - \upsilon_{L}^{f}}{\eta_{L}^{s} - \upsilon_{L}^{s}}}}} \\ {\overset{{(55)} - {(56)}}{=}{\frac{t^{\prime}\gamma_{f}}{T\; \cos \; \theta^{\prime}} + {m_{s}\frac{{{- \alpha_{eff}}{\gamma_{f}/\sin}\; \theta^{\prime}} - {{\gamma_{f}/\cos}\; \theta^{\prime}}}{{- \gamma_{s}}/\left( {3^{L}\sin \; \theta^{\prime}} \right)}(58)}}} \\ {= {\frac{t^{\prime}\gamma_{f}}{T\; \cos \; \theta^{\prime}} + {m_{s}\frac{{- \gamma_{f}}3^{L}\sin \; \theta^{\prime}}{\gamma_{s}}\left( {\frac{\alpha_{eff}}{\sin \; \theta^{\prime}} + \frac{1}{\cos \; \theta^{\prime}}} \right)(59)}}} \\ {= {\frac{t^{\prime}\gamma_{f}}{T\; \cos \; \theta^{\prime}} - {m_{s}\frac{\gamma_{f}3^{L}}{\gamma_{s}}\left( {\alpha_{eff} + {\tan \; \theta^{\prime}}} \right)(60)}}} \end{matrix} & (57) \end{matrix}$

where (44)-(48) specifies the transformation from (β, α) to (θ′, t′), and (50) specifies α_(eff).

It is easy to see from FIG. 16B that the spectral support of the ray will lie within the cross-hatched wedge i.e. it will never lie on the ω_(s) axis, or equivalently, it will never be oriented in the direction of the m_(f) axis in the space domain. Consequently the parameterization h^(β,α)[m_(s)] that depends on m_(s) will always be possible.

1.4 Hybrid Space-Fourier Domain

We say an image y^(d)[m_(f), m_(s),] is in the space domain if m_(f), m_(s)∈

are spatial coordinate indices. It turns out that the implementation of the reprojection can be made more efficient, in terms of computational cost, memory usage and parallelizability, if the intermediate images are represented in a hybrid space-Fourier domain [1] instead.

If the 1D discrete Fourier transform (DFT) of y^(d) is performed along the m_(f) coordinate then we get an image y[k_(f), m_(s)] that is in the space-Fourier domain, i.e. it is a function of one Fourier coordinate k_(f) and one spatial coordinate m_(s) i.e. Y[k_(f), m_(s),]=Σ_(m) _(f) ₌₀ ^(N) ^(f) ⁻¹[m_(f), m_(s)]e^(−i2πm) ^(f) ^(k) ^(f) ^(/N) ^(f) . Without loss of generality, here we are assuming that the range of the image indices are m_(f)∈{0, 1, . . . , N_(f)−1} and m_(s){0, 1, 1, . . . , N_(s)−1} to conform to standard DFT notation even though we previously used the ranges {−N_(f), −N_(f)+1, . . . , +N_(f)} and {−N_(s), −N_(s)+1, . . . , +N_(s)}

Recall, from Section 1.3.5, that in the decomposition stages the intermediate images are sheared along the fast coordinate direction. From (27), we know that this operation reduces to a convolution with a fractional delay filter along the fast direction i.e. g^(d)[·, m,]=y^(d)[·, m_(s)]*h_(d) ^(αm) ^(s) , where “*” denotes the 1D convolution with respect to the variable represented by [.]. Consider transforming the input and output images (y^(d) and g^(d)) to the space-Fourier domain. Then by the well known property that a (circular) convolution between two signals in the spatial domain is equivalent to the multiplication of those two signals in the DFT domain, we get:

$\begin{matrix} {\mspace{79mu} {{G\left\lbrack {k_{f},m_{s}} \right\rbrack} = {{{Y\left\lbrack {k_{f},m_{s}} \right\rbrack} \cdot {H^{\alpha \; m_{s}}\left\lbrack k_{f} \right\rbrack}}\mspace{14mu} {where}}}} & (61) \\ {{H^{\tau}\left\lbrack k_{f} \right\rbrack} = {{\sum\limits_{m_{f} = 0}^{N_{f} - 1}{{h_{d}^{\tau}\left\lbrack m_{f} \right\rbrack}e^{{- i}\; 2\; \pi \; m_{f}{k_{f}/N_{f}}}}}\overset{(27)}{=}{\sum\limits_{m_{f} = 0}^{N_{f} - 1}{{\psi \left( {m_{f} + \tau} \right)}e^{{- i}\; 2\; \pi \; m_{f}{k_{f}/N_{f}}}}}}} & (62) \end{matrix}$

The interpolator ψ we use is the periodic sinc interpolator (a.k.a dirichlet kernel) with period N_(f) because, as shown in Section C, when using the periodic sinc interpolator the expression for H^(τ)[k_(f)] simplifies to H^(τ)[k_(f)]=e^(iτ2πk) ^(f) ^(/N) ^(f) . Therefore for hybrid space-Fourier domain images the shear operation (81) reduces to this pixel-wise multiplication:

G[k _(f) ,m _(s)]=Y[k _(f) ,m _(s)]e ^(iαms2πk) ^(f) ^(/N) ^(f)   (63)

Consequently the computational cost (per output pixel) of shearing is reduced from M multiply-adds, where M is the length of the FIR interpolator, to a single complex multiplication. Furthermore the columns of the input and output image (i.e. where a single column corresponds to a single frequency index k_(f)) do not interact with each other and therefore operations across the frequency indices (channels) are parallelizable.

Since the image transformation in the kernel-stage is not a pure shear it cannot be performed in the hybrid space-Fourier domain. So the transformation back to the space-domain is performed prior to the fast-direction interpolation in the kernel-stage (Section 1.3.6).

The length of the DFT, i.e. the amount of zero-padding, needs to be chosen larger enough relative to the m_(f)-extent of the input image y^(d) to avoid circular shifts and to ensure that the kernel-stage input image is linearly, rather than circularly, convolved as is standard practice in signal processing.

While the voxels of y are real-valued, the voxels of Y will be complex-valued. That might suggest that y will require twice as much memory as Y but that is not the case because the DFT of a real signal is symmetric i.e. Y[k_(f), m_(s),]=Y[N_(f)−k_(f), m_(s)], where . denotes the complex conjugate (a+bi=a−bi). Because of the symmetry only a little more that half the voxels (for k_(f)=0, . . . , N_(f)/2) need to be stored and processed. We assume that N_(f) is even.

The description of the RP method for the 2D fan-beam geometry that operates in the hybrid space-Fourier domain is presented later, in Section 2.2.4.

2 3D Cone-Beam Geometry

The RP/BP method for the cone-beam geometries for arbitrary source trajectories (circular, helical etc.) is the main component of this invention. It consists of two variants: first the method for geometries with a narrow cone-angle that is simpler to describe; and second the method for an arbitrarily wide cone-angle that is more complicated.

Both methods take a 3D image volume as input and produce a set of 3D cone-beam projections as output. Let the discrete-domain image volume

be the input to the 3D cone-beam reprojection operator. Without loss of generality we assume, in this description, that the origin of the physical coordinate system coincides with the center of rotation and origin of the coordinate system of the tomographic equipment, and the voxel side lengths T are exactly 1 physical unit. Consequently the discrete-domain and continuous domain image volumes are related as y^(d)[m₁, m₂, m₃]=y(m₁, m₂, m₃). The treatment of the case T≠1 would be similar to that described in Sections 1.2 and 1.3 for the parallel beam and fan beam cases.

If we were operating in the continuous-domain then the output projections would also be a 3D function p(β, α, v). Every point in p(β, α, v) corresponds to a 1D line-integral through the input image y. Specifically this line passes through the source and detector positions parameterized by β, α, v. The output of the discrete-domain RP operator is a 3D volume of samples p_(d)[n_(β), n_(α), n_(v)] where pd[n_(β), n_(α), n_(v)]=p(T_(β)n_(β),T_(α)n_(α), T_(v)n_(v)), where T_(β), T_(α) and T_(v) are the appropriate sample spacings.

The tomographic geometry is illustrated in FIG. 17A. It shows the helical cone-beam geometry for a curved detector panel. The dotted curve shows the helical trajectory of the source around the object. The radius of the helix is D and the pitch is h i.e., for every full turn of the helix, the change in the x₃ coordinate is h. For a source position (labeled “source position” in FIG. 17A), the source-angle β is as shown. Consider a ray emanating from the source (labeled “ray”) the fan-angle ca is as shown in FIG. 17A). Here 3 and ca are the source angle and fan-angle familiar from the 2D fan-beam geometry. In addition the parameter v is the detector row coordinate that defines the elevation angle of the ray. For convenience the detector coordinates are defined on a virtual detector that passes through the origin of the coordinate system (labeled “virtual detector”).

The locations in the 3D coordinate system (x₁, x₂, x₃) of the source {right arrow over (x)}^(src)(β, α, v) and detector {right arrow over (x)}^(det)(β, α, v) for the ray parameterized by (β, α, v) are given as follows. Here s₀ is the x₃-coordinate of the source corresponding to the view for which β=0.

$\begin{matrix} {\mspace{79mu} {{{\overset{\rightarrow}{x}}^{src}\left( {\beta,\alpha,\upsilon} \right)} = \begin{bmatrix} {D\; {\sin (\beta)}} \\ {{- D}\; {\cos (\beta)}} \\ {s_{0} + {\frac{h}{2\pi}\beta}} \end{bmatrix}}} & (64) \\ {{{\overset{\rightarrow}{x}}^{\det}\left( {\beta,\alpha,\upsilon} \right)} = {{{\overset{\rightarrow}{x}}^{src}\left( {\beta,\alpha,\upsilon} \right)} + {\begin{bmatrix} {\cos \; (\beta)} & {- {\sin (\beta)}} & 0 \\ {\sin (\beta)} & {\cos (\beta)} & 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} {D\; \sin \; \alpha} \\ {D\left( {{- 1} + {\cos \; \alpha}} \right)} \\ \upsilon \end{bmatrix}}}} & (65) \end{matrix}$

Let {right arrow over (x)}^(ray) be the normalized direction vector from the source to the detector:

$\begin{matrix} {{{\overset{\rightarrow}{x}}^{ray}\left( {\beta,\alpha,\upsilon} \right)} = \frac{{{\overset{\rightarrow}{x}}^{\det}\left( {\beta,\alpha,\upsilon} \right)} - {{\overset{\rightarrow}{x}}^{src}\left( {\beta,\alpha,\upsilon} \right)}}{{{{\overset{\rightarrow}{x}}^{\det}\left( {\beta,\alpha,\upsilon} \right)} - {{\overset{\rightarrow}{x}}^{src}\left( {\beta,\alpha,\upsilon} \right)}}}} & (66) \\ {{{Then}\mspace{14mu} {p\left( {\beta,\alpha,\upsilon} \right)}} = {\int_{s = {- \infty}}^{\infty}{\left( {{{\overset{\rightarrow}{x}}^{src}\left( {\beta,\alpha,\upsilon} \right)} + {s \cdot {{\overset{\rightarrow}{x}}^{ray}\left( {\beta,\alpha,\upsilon} \right)}}} \right){{ds}.}}}} & (67) \end{matrix}$

FIG. 17B shows another common configuration for the trajectory of the source—circular (where the helical pitch h=0), rather than helical.

2.1 3D Fourier Slice Theorem

Let us state the Fourier Slice Theorem for 3D tomographic geometries, i.e., the 3D equivalent of equations (17)-(18). First define three orthonormal vectors ({right arrow over (v)}₁ ^(θ,ξ), {right arrow over (d)}^(θ,ξ), {right arrow over (v)}₂ ^(θ,ξ)) by rotating the cardinal basis vectors, by the elevation angle C followed by the azimuthal angle θ as follows:

$\left\lbrack {{\overset{\rightarrow}{\upsilon}}_{1}^{\theta,\xi}{{\overset{\rightarrow}{d}}^{\theta,\xi}}{\overset{\rightarrow}{\upsilon}}_{s}^{\theta,\xi}} \right\rbrack = {{\begin{bmatrix} {\cos \; \theta} & {{- \sin}\; \theta} & 0 \\ {\sin \; \theta} & {\cos \; \theta} & 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0 \\ 0 & {\cos \; \xi} & {{- \sin}\; \xi} \\ 0 & {\sin \; \xi} & {\cos \; \xi} \end{bmatrix}}\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}}$

The rotated basis vectors are illustrated in FIG. 18A.

Then define the 3D X-ray transform of a 3D function y({right arrow over (x)}) as the set of all line integrals in the direction {right arrow over (d)}^(θ,ξ). A single 3D X-ray transform projection at angle (θ, ξ) is defined as follows:

(

_(θ,ξ) f)(t ₁ ,t ₂)∫_(s) f(t ₁{right arrow over (v)}₁ ^(θ,ξ) +t ₂ {right arrow over (v)} ₂ ^(θ,ξ) +s{right arrow over (d)})ds  (68)

The Fourier Slice Theorem says that the (3D) Fourier transform (denoted

₃) of the function y is related to the 2D Fourier transform (denoted

₂) of its projection

_(θ,ξ)f as follows:

(

₂

_(θ,ξ) f)(ω₁,ω₂)=(

₃ f)(ω₁ {right arrow over (v)} ₁ ^(θ,ξ)+ω₂ {right arrow over (v)} ₂ ^(θ,ξ)  (69)

The right hand side of equation (69) describes the Fourier Transform of the image y evaluated on a plane that is constructed by applying two rotations to the ω₂=0 plane: rotation by ξ about ω₁ followed by rotation by θ about ω₃. This plane is illustrated in FIG. 18B by the striped planar region. The 3D Fourier Slice Theorem says that the Fourier content needed to compute the projection

_(θ,ξ)f lies on the rotated plane shown in FIG. 18B.

Note that any line integral in any direction can be represented by (68), by the appropriate choice of θ, ξ, t₁ and t₂. So it is easy to see that the line integral along any ray produced by the RP operator is contained inside an X-ray transform projection

_(θ,ξ) for some θ and ξ. It can be shown, from the equation for the ray direction {right arrow over (x)}^(ray)(β, α, v) (66), that a ray with parameters (β, α, v) is contained in the projection

_(θ,ξ), where θ and ξ are as follows:

θ=β−α and ξ=arctan(v/D)  (70)

2.2 3D Cone-Beam Geometry: Narrow Cone-Angle

The RP methods for the fan-beam geometry, described in Section 1.3, can be fairly easily modified to the cone-beam geometries in which the maximum cone-angle of the rays is small. In this narrow-cone-angle method, the fan-beam RP method can be applied to each 2D z-slice individually for the majority of the method. For this reason we call it the 2.5D method.

2.2.1 Decomposition Stage

Consider what happens in the Fourier domain during the decomposition stage of the 2.5D method where the fan-beam RP method is applied identically to each 2D-slice of the input image y^(d) i.e., y^(d)[·,·, m₃]. Without loss of generality, for simplicity assume that the up-interpolation factors in level l=0 (FIG. 11) are U_(s)=U_(f)=1. The two main operations in the decomposition stage are (a) the image transformation operators and (b) the slow direction decimation operators.

In the case of image transformation, recall from Section 1.1.3 that when the image is subject to a transformation by a matrix V its spectral support is transformed by V^(T). Consider a 2D image transformation V_(2D) ∈

^(2×2). In the case when the operator is extended to 3D such that every slice is identically operated on, we get the following simple relationship between the 2D and 3D transformation matrices:

$\begin{matrix} {V_{2D} = {{\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}\mspace{14mu} V_{3D}} = \begin{bmatrix} a_{11} & a_{12} & 0 \\ a_{21} & a_{22} & 0 \\ 0 & 0 & 1 \end{bmatrix}}} & (71) \end{matrix}$

So if the 3D transformation g({right arrow over (x)})=y(V_(3D){right arrow over (x)}) is applied, then a point that in the {right arrow over (ω)}_(f) spectral support of y is transformed as follows:

$\begin{matrix} {{{\overset{\rightarrow}{\omega}}_{g} = {{V_{3D}^{T}{\overset{\rightarrow}{\omega}}_{f}} = {\begin{bmatrix} a_{11} & a_{21} & 0 \\ a_{12} & a_{22} & 0 \\ 0 & 0 & 1 \end{bmatrix}{\overset{\rightarrow}{\omega}}_{f}}}}{{i.e.},{\begin{bmatrix} \omega_{g}^{1} \\ \omega_{g}^{2} \end{bmatrix} = {{{\begin{bmatrix} a_{11} & a_{21} \\ a_{12} & a_{22} \end{bmatrix}\begin{bmatrix} \omega_{f}^{1} \\ \omega_{f}^{2} \end{bmatrix}}\mspace{14mu} {and}\mspace{14mu} \omega_{g}^{3}} = \omega_{f}^{3}}}}} & (72) \end{matrix}$

In other words every ω₃-plane of the spectral support of y is subject to an identical in-plane transformation.

In the case of decimation by D (recall B.2) the decimation operator scales the frequency content, expanding it by a factor D along the slow coordinate i.e. G(ω_(f), ω₂, ω_(z))=y(ω_(f), ω_(s)/D, ω_(z)).

With this knowledge we can track the evolution of the spectral support of the input 3D volume during the decomposition levels of the 2.5D RP algorithm, just as was done in the 2D case. Recall from FIGS. 10A-10B and Section 1.3.1, that if the DTFT domain of the input image is partitioned into 2·3^(L) bow-tie like wedges W_(L,1), W_(L,2), . . . , W_(L,2·3) _(L) , then the spectral support of the kernel-stage image I_(L,n) ² contains the wedge W_(L,n).

But note that the spectral support of I_(L,n) ^(d) contains not just wedge W_(L,n) but the parallelogram-shaped bounding box that contains the wedge. To see this consider a single child branch of one of the nodes of the algorithm i.e. a shear followed by a decimation. As shown in FIG. 19A-C, every ω_(w) slice of the Fourier transform of the parent image gets sheared along ω_(s), and then stretched along ω_(s). FIGS. 19A-C are almost the same as FIG. 8 (i-iii) but depict both the wedge of interest and the parallelogram-shaped bounding box containing the wedge (denoted by the striped region). This is a more accurate description of the spectral support of the intermediate images in the algorithm. Prior to the shear the bounding box is parallelogram-shaped as shown by the striped region in FIG. 19A. After the shear it is a rectangle that stradles the ω_(f) axis as shown in FIG. 19B, and after stretching it is a rectangle that fills the DTFT domain [−π, π)×[−π, π) as shown in FIG. 19C.

Recursively applying the shearing and stretching of the spectral support at every stage of the decomposition, in every ω₂-slice of the parent image, to the parallelogram-shaped bounding box instead of the wedge, we see that spectral support of the kernel-stage image I_(L,n) ^(d) contains the parallelogram-shaped bounding box containing wedge W_(L,n) (indicated by the striped region shown in FIG. 19D). When considering the whole 3D spectral support it is easy to see that the subset of the spectral support of the input image that is preserved in I_(L,n) ^(d) is a parellelepiped as shown in FIG. 19E—simply the parallelogram-shaped strip from FIG. 19D extended by replication along ω_(z).

While our 2D strategy only considered the partitioning of the spectral support into bowtie-like wedges, we are now considering a more accurate description of the spectral support—the trapezoidal bounding box that contains each wedge. This is because in 3D we are using the spectral support of the intermediate images more fully to accommodate the additional degree of freedom of elevation-angle (ξ).

Combining the 3D Fourier Slice Theorem with the knowledge of the spectral support of the kernel-stage images, it is shown next that a ray whose cone angle ξ is large in absolute value can not be synthesized from the 2.5D RP method. Recall from the cone-beam to 3D PB mapping equations (70) that any ray in the cone-beam geometry can be parameterized in the 3D parallel-beam geometry as belonging to a parallel beam projection with parameters (θ, ξ) given by (70).

Consider a ray whose 3D X-ray-transform parallel-beam parameters are (θ, ξ). If ξ=0 then recall, from Section 2.1 and FIG. 18B, that its spectral support is a plane that contains the ω_(z) axis. Consequently this plane and hence the spectral support of the ray in question is fully contained in one of the 2·3^(L) sheared slabs, one of which is depicted in FIG. 19E. On the other hand if the angle ξ is large enough in absolute value, then the spectral support plane (of the 3D parallel beam projection that contains the ray) will be tilted in such a way that the spectral support of the ray falls partially outside the spectral support of the kernel-stage image.

FIGS. 19F-G show such a scenario where is large. For simplicity of visualization we show the case where θ=0. The region of the plane in FIG. 19F that is cross hatched falls inside the slab, which is shown by the dashed lines, but the region that is striped falls outside the slab. FIG. 19G shows a side view of the same scenario. Here the regions inside, and outside, the slab are indicated by the solid, and dotted lines, respectively. Consequently the 2.5D method can only be used to compute rays with small cone-angle. We leave further discussion of this cone-angle restriction to Section 2.3 where we describe a preferred method for wide cone-angle geometries.

2.2.2 Kernel Stage

The most significant difference between the fan-beam and cone-beam algorithms is in the kernel-stage. Similar to the case of the fan-beam algorithm explained in Section 1.3.6, the kernel-stage is a sequence of two operations (i) interpolation from an image onto a set of non-parallel lines, each corresponding to a single output ray parameterized by (β, α, v), and (ii) summation along the slow direction.

The differences are as follows. While in the fan-beam case the input to the interpolation is a 2D kernel-stage image I_(L,n) ^(d)[m_(f), m_(s)] and the interpolation is 1D and along the fast direction m_(f), in the cone-beam case, the input to the interpolation is a 3D kernel-stage image I_(L,n) ^(d)[m^(f), m_(s), m_(f)] and the interpolation is performed in a separable way using 1D interpolation along the fast direction (m_(f)) followed by 1D interpolation along the z direction (m_(z)).

Given an input image in the kernel-stage the following are the steps performed.

(a) Determine Set of Output Ray Indices

For a given kernel-stage input image I_(L,n) ^(d) we first construct the set of

_(n) the indices of all the rays that will be computed from this image. Recall that the output of the reprojection is a 3D volume of samples. p_(d)[n_(β), n_(α),n_(v)]. So

_(n) is a set of triplet indices. The number of these sets is equal to the number of kernel-stage input images, i.e., 2·3^(L). And the size of one set is not necessarily the same as the size of another, i.e., the number of rays synthesized from different kernel stage images can be different.

The preferred way of determining these sets is to pre-compute them prior to the kernel stage and look them up during the execution of the kernel-stage. The set construction precomputation is as follows:

Step 1: iterate through all the indices of the output volume.

Step 2: For each index triplet (m_(β), m_(α), m_(v)) determine the ray parameterization (β, α, v) from the geometry specification. The geometry specification has equations mapping the ray indices to the cone-beam parameters. For example in a geometry in which the parameters are uniformly spaced the equations are as follows:

β(m _(β))=β₀+Δ_(β) m _(β)α(m _(α))=α₀+Δ_(α) m _(α) v(m _(v))=v ₀+Δ_(v) m _(v)  (73)

So this step would be a direct application of these equations.

Step 3: Determine the set to which the triplet index belongs by the following formula:

$\begin{matrix} {{n = {m_{KER}(\theta)}}\mspace{14mu} {{{where}\mspace{14mu} \theta} = \left( {{- \frac{\pi}{4}} + {\left( {\beta - \alpha - \left( {- \frac{\pi}{4}} \right)} \right)\% \mspace{14mu} \pi}} \right)}} & (74) \end{matrix}$

where m_(KER) is specified in (37). In (74) the modulo by π maps θ to the range [−π/4, +3π/4) similarly to (46), since the domain of m_(KER) is [−π/4, +3π/4).

Step 4: Append/insert the triplet index (m_(β), m_(α), m_(v)) to the set

_(n).

(b) Computing Interpolation Coordinates

During the execution of the kernel stage, given a kernel-stage input image I_(L,n) ^(d) first the set of output ray indices

_(n) is determined as explained in (a).And then these rays are computed from the input kernel-stage image by interpolation. For each triplet index

(m_(β), m_(α), m_(v)) in the set

_(n)i, interpolation from the 3D input image I_(L,n) ^(d) onto a 1D set of samples along the ray corresponding to the index.

In this section we explain how to compute the interpolation coordinates, so the equations in the section relate to coordinate computation and not image operations. And in the next section we show how the interpolation coordinates computed here are used to perform the interpolation from the input image onto a set of 1D output signals.

Similar to the fan-beam case (Section 1.3.6) the kernel-stage interpolation coordinates for a ray are computed by first transforming the ray from the cone-beam geometry to the coordinate system of the discrete domain input image y^(d), and then applying the cumulative image transformation that transforms the ray to the appropriate kernel-stage input image.

Consider a ray whose cone-beam parameterization is (β, α, v). Equations (64) and (65) give the coordinates of two points on this ray: the source location {right arrow over (x)}^(scr)(β, α, v) and the detector location {right arrow over (x)}^(det)(β, α, v). We want to transform these two points to the coordinate system of the appropriate kernel-stage image. For simplicity of notation let us denote the transformed versions of {right arrow over (x)}^(src) (and respectively {right arrow over (x)}^(det)) to the coordinate system of the appropriate image in level l as {right arrow over (v)}_(l) (and respectively {right arrow over (η)}_(l)).

So in order to compute {right arrow over (v)}₀ and {right arrow over (η)}₀, for the initial decomposition-stage l=0, we apply the transformations shown in level 0 of the block diagram in FIG. 11 to each slice independently. These transformations, stated in (75), are (i) rescaling of the coordinates by the respective sampling intervals to transform the coordinates from the continuous to discrete image domains, (ii) optional rotation by 90, and (iii) up-interpolation by U_(s) and U_(f). So:

$\begin{matrix} {{\overset{\rightarrow}{\upsilon}\;}_{0} = {{{\begin{bmatrix} U_{f} & 0 & 0 \\ 0 & U_{s} & 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} {\cos \; \frac{d\; \pi}{2}} & {\sin \; \frac{d\; \pi}{2}} & 0 \\ {\sin \; \frac{{- d}\; \pi}{2}} & {\cos \; \frac{d\; \pi}{2}} & 0 \\ 0 & 0 & 1 \end{bmatrix}}\begin{bmatrix} \frac{1}{T} & 0 & 0 \\ 0 & \frac{1}{T} & 0 \\ 0 & 0 & \frac{1}{T_{3}} \end{bmatrix}}{\overset{\rightarrow}{x}}^{src}}} & (75) \\ {{{where}\mspace{14mu} d} = \left\{ \begin{matrix} {{0\mspace{14mu} {if}\mspace{14mu} n_{\beta,\alpha}} \leq 3^{L}} \\ {{1\mspace{14mu} {if}\mspace{14mu} n_{\beta,\alpha}} > 3^{L}} \end{matrix} \right.} & \; \end{matrix}$

We then transform v₀ and η₀, from the start of the decomposition stage to the start of the kernel-stage using the appropriate cumulative image transformation. Recalling the equivalent fan-beam (frequency-domain) transformation matrix A_(eff) as specified in (51), then the 2.5D (frequency-domain) transformation matrix A_(eff) ^(2.5D) is constructed by leaving the ω_(z) coordinate unchanged:

$\begin{matrix} {A_{eff}^{2.5D} = \begin{bmatrix} {1/\gamma_{f}} & 0 & 0 \\ {\alpha_{eff}{3^{L}/\gamma_{s}}} & {3^{L}/\gamma_{s}} & 0 \\ 0 & 0 & 1 \end{bmatrix}} & (76) \end{matrix}$

Just as in the fan-beam case, described in (53), in order to compute the coordinates of the points v₀ and η₀ in the kernel-stage, we multiply each point by the matrix (A_(eff) ^(2.5D))^(−T) Now that we know two points on the ray in the coordinate system of the kernel-stage input image, we determine the parameterization of that ray just as it was done in the fan-beam case (FIGS. 16A-16D and Section 1.3.6) using similarity of triangles. Denoting the coordinates of the two points v₀ and η₀ when transformed to the coordinate system of the kernel-stage input image by v_(L)

(v_(f), v_(s), v_(z)) and η_(L)

(η_(f), η_(s), η_(z)) respectively, the parameterization of the line is (m_(f), m_(s), m_(v))=(h_(f) ^(β,α,v)[m_(s)], h_(z) ^(β,α,v)[m_(s)]) where

$\begin{matrix} {{h_{f}^{\beta,\alpha,\upsilon}\left\lbrack m_{s} \right\rbrack} = {\upsilon_{f} + {\left( {m_{s} - \upsilon_{s}} \right)\frac{\eta_{f} - \upsilon_{f}}{\eta_{s} - \upsilon_{s}}\mspace{14mu} {and}}}} & (77) \\ {{h_{z}^{\beta,\alpha,\upsilon}\left\lbrack m_{s} \right\rbrack} = {\upsilon_{z} + {\left( {m_{s} - \upsilon_{s}} \right)\frac{\eta_{z} - \upsilon_{z}}{\eta_{s} - \upsilon_{s}}}}} & \; \end{matrix}$

This is illustrated in FIG. 20. It is the 3D version of FIGS. 16A-16D. The ray in question is represented by the thick arrow connecting the two heavy dots, which represent the points v_(L) and η_(L). The parameterizations of the fast-direction and z-direction coordinates, m_(f)=h_(f)[m_(s)] and m_(z)=h_(z)[m_(s)], can be visualized as projections of the ray onto an m_(s)-m_(f) plane and m_(d)-m_(z) plane respectively. These projections are denoted in FIG. 20 by the dashed arrows.

For the same reason as in the fan-beam case (Section 1.3.6) we know that the ray will never be oriented in the direction of the m_(f) axis (i.e. since the spectral support lies within a wedge that straddles the ω_(f) axis), and because |ξ| is small we know the ray will never be oriented in the direction of the m_(s) axis. So such a parameterization that depends on m_(s) will always be possible.

(c) Computing Output Projections: Interpolation+Weighting

Now that we have determined the interpolation coordinates h_(f) ^(β,α,v)[m_(s)] and h_(z) ^(β,α,v)[m_(s)], we describe the kernel-stage operations in terms of interpolation of the input image. First the interpolation of the a 1D signal g from the 3D input image I_(L,n) ^(d) is performed:

g[m _(s) =I _(L,n) ^(d)[h _(f) ^(β,α,v)[m _(s)],m _(s) ,h _(z) ^(β,α,v)[m _(s)]]]  (78)

Here we use the interpolation shorthand defined in 1.1.5.

Second we perform a summation of g along m_(s) followed by multiplication by a weight w_(β,α,v) i.e., p(β, α, v)=w_(β,α,v) Σ_(m) _(s) g[m_(s)]. The weight w_(β,α,v) similar to the sec θ weighting in in (16), accounts for the spacing of samples in g[m_(s)] when transformed to the coordinates of the input image.

(d) Separable Interpolation

For typical CT geometries this interpolation can be performed in a separable way. The 3D-to-1D interpolation in (78) can be done separably in two steps as follows:

g ₁[m _(s) ,m _(z)]=I _(L,n) ^(d)[h _(f) ^(β,α,v)[m _(s)],m _(s) ,m _(z)]  [Step 1] (79)

g[m _(s)]=g ₁[m _(s) ,h _(f) ^(β,α,v)[m _(s)]]  [Step 2] (80)

Here Step 1 describes 1D interpolation along the m_(f) coordinate, which is identical for every slice m_(z). The output of Step 1 is a 2D image g₁. Step 2 describes 1D interpolation along the second coordinate of g₁ to produce the 1D signal g. Combining the two equations we can show that the output is as desired in (78):

g[m _(s)]=g ₁[m _(s) ,h _(z) ^(β,α,v)[m _(s)]]=I _(L,n) ^(d)[h _(f) ^(β,α,v)[m _(s)],m _(s) ,h _(z) ^(β,α,v)[m _(s)]]

2.2.3 Block Diagram

FIG. 21 shows a block diagram of a preferred embodiment of the RP method. The input is the discrete-domain 3D image volume y^(d)[{right arrow over (m)}] and the output are the projections of the volume a 3D volume p_(d)[m_(β), m_(α), m_(v)].

The overall structure is exactly as in the fan-beam method described previously. In the pre-decomposition stage there is a binary split (just as in FIG. 11), followed by a rotation of 0 or 90 degrees depending on the branch, and up-interpolation along the f and s coordinate directions. In the L levels of the decomposition stage each node is ternary (just as in FIG. 7), resulting in 2·3^(L) input images at the kernel-stage. The intermediate images are denoted I to reflect their correspondence to the block-diagrams for the 2D geometries (FIGS. 7 and 11). As previewed in Section 1.4, the decomposition stage operates in the hybrid space-Fourier domain. Let us take a closer look at the constituent blocks of the block diagram in FIG. 21:

-   -   SPLINE TRANSFORMS: This block at the start of the         pre-decomposition stage does preparatory work for spline         interpolations that are performed downstream in the block         diagram. In the algorithm 1D interpolation is performed in a few         different modules (such as at the end of the pre-decomposition         stage and in the kernel-stage). As explained in Section         1.1.4,when using spline-based interpolation, the 1D         interpolation operation can be split into a sequence of an IIR         spline-transform followed by a spline-FIR. It turns out that the         linearity and separability our method allows for the         spline-transform to be performed at the start of the         pre-decomposition stage of the RP rather than just prior to the         spline-FIR part. Lifting the spline transforms to the start of         the pre-decomposition stage allows for fewer arithmetic         operations and a more favorable memory access pattern.     -   In the block labeled SPLINE TRANSFORMS, three 1D spline         transforms are performed one along each coordinate axis of the         input image. The corresponding spline FIR parts are carried out         later in the RP (in the blocks labeled “SPLINE FIR, FFT”, at the         end of the pre-decomposition stage, and “SPL FIR+SUM” in the         kernel-stage).     -   ROTATE-0 and ROTATE-90: Exactly as in the fan-beam algorithm         (FIG. 11 and B.1, there is a binary split in the         pre-decomposition stage, with the child branches rotated         clockwise about the m_(m) axis, by 0 (a no-op) and by π/2         radians respectively:

I _(0,1) ^(d)[m _(f) ,m _(s) ,m _(z)]=g ^(d)[m _(f) ,m _(s) ,m _(z)] and I _(0,2) ^(d)[m _(f) ,m _(s) ,m _(z)]=g ^(d)[−m _(s) ,m _(f) ,m _(z)]

-   -   SPLINE FIR, FFT: This is a sequence of the following three         operations.     -   1. Spline FIR along the fast coordinate, as defined in Section         1.1.4: Here the output coordinates are uniformly spaced set of         output coordinates with (fractional) spacing 1/γ_(f) i.e.,

${g_{out}\left\lbrack {m_{f},m_{s},m_{z}} \right\rbrack} = {\sum\limits_{m}{{\psi_{1D}\left( {{m_{f}/\gamma_{f}} - m} \right)}{g_{in}\left\lbrack {m,m_{s},m_{z}} \right\rbrack}}}$

-   -   -   Here ψ_(1D) is the appropriate 1D spline basis function.             Note that the accompanying spline transform for this spline             FIR operation has been previously performed in the block             labeled “Spline transforms”.

    -   2. FFT along the fast coordinate: In order that the         decomposition stage images be in the hybrid space-Fourier         domain, an FFT is performed along the fast direction coordinate:

g _(out)[·,m _(s) ,m _(z)]=DFT(g _(in)[·,m _(s) ,m _(z)])

-   -   -   The coordinates of g_(out) are k_(f), m_(s), m_(z). Because             g_(out) has conjugate symmetry along k_(f), we can truncate             the frequency axis from {0, 1, . . . , N−1} to

$\left\{ {0,1,\ldots \mspace{14mu},\frac{N}{2}} \right\}$

to keep only about half the frequency channels. Here N, the FFT length, is chosen to be large enough to provide sufficient zero padding to ensure linear convolution, and avoid circular shifting, of all the images in the hierarchy.

-   -   3. Spline FIR along the slow coordinate onto uniformly spaced         output coordinates with (fractional) spacing 1/γ_(s):         g_(out)[k_(f), m_(s), m_(z)]=Σ_(m)ψ(m_(s)/γ_(s)−m)g_(in)[k_(f),         m, m_(z)]         Some of these three operations commute with each other so there         are alternate orders in which they can be performed γ_(s) and         γ_(f) depend on the oversampling factor chosen and are set as         described in Section 1.3.3.     -   SHEAR: Just as in the fanbeam algorithm, in every node of the         decomposition stage the input image is diverted into three         branches. In each branch the image is subject to a shear along         the fast coordinate by a different parameter. We use the         periodic sinc (a.k.a Dirichlet kernel) interpolator and perform         the shear in the hybrid space-Fourier domain as described in         (63). As specified in Section 1.3.5 the shear factors are

$\frac{2\gamma_{f}}{3\gamma_{s}},$

0, and

$- \frac{2\gamma_{f}}{3\gamma_{s}}$

in the three branches. So the shear operation on the i^(th) child (i=1, 2, 3) is the following pixel-wise complex multiplication:

J _(l+1,3m−2+i)[k _(f) ,m _(s) ,m _(z)]=I _(l,m) ^(d)[k _(f) ,m _(f) ,m _(z)]e ^(jαim) ^(s) ^(2πk) ^(f) ^(/N) ^(f)

where

$\begin{matrix} {\alpha_{i} = {{- \frac{2\gamma_{f}}{3\gamma_{s}}}\left( {i - 2} \right)}} & (81) \end{matrix}$

Note that since the shearing is performed in-plane, every 2D slice of the image volume I_(l,m) ^(d) [·, ·, m_(z)] is handled identically. The operation is equivalent to an in-plane spatial shear along the fast coordinate direction.

-   -   DECIM: This denotes 1D filtered decimation by a factor of 3         along the slow coordinate. As explained in B.2 it combines         low-pass filtering and downsampling. For an input image that has         N_(s) pixels along the slow direction, the output image will         have roughly N_(s)/3 pixels along the slow direction. The         decimation operator, denoted Decim in the block diagram and         in the equations below, takes as input the 1D signal         J_(l,m)[k_(f), ·, m_(z)], for every k_(f), m_(z) in the input         image, and produces as output the 1D signal I_(l,m) ^(d)[k_(f),         ·, m_(z)]

Since the input image is complex-valued, the decimation is performed on the real and imaginary parts and the two resulting images are combined to form an output complex-valued image i.e.

(J^(d))=

(Re(J^(d))+iIm(J^(d)))=

(Re(J^(d)))+i

(Im(J^(d)).

We use a spline-based decimation that involves IIR and FIR filtering i.e. it is implemented as the adjoint of the spline interpolation described in Section 1.1.4.

-   -   IFFT: This block performs an inverse FFT along the fast         coordinate. This is performed at the end of the decomposition         levels to restore the image from the space-Fourier domain to the         space domain: J_(L,m) ^(d)[·, m_(s), m_(z)]=IFFT(I_(L,m) ^(d)[·,         m_(s), m_(z)]). During this IFFT we apply the conjugate symmetry         to effectively expand the frequency channels from

$\left\{ {0,1,\ldots \mspace{14mu},\frac{N}{2}} \right\}$

to {0, 1, . . . , N−1}.

Just prior to performing the IFFT we also apply a spline transform along the fast coordinate. Rather than use a space-domain IIR as in normally done, we perform the equivalent operation in the FFT which is just a multiplication.

-   -   SPL FIR+SUM: As described in Section 2.2.2 in the kernel-stage         we perform interpolation onto non-parallel lines followed by         summation along the slow coordinate. The indices of the output         rays that are synthesized from the kernel-stage image I_(L,n) is         specified in the precomputed set as         _(n) described in Section 2.2.2(a). So in FIG. 21 for the n^(th)         kernel-stage input image the set         _(n) is shown as an auxilary input to the block labeled “SPL         FIR+SUM” via a horizontal arrow. The output of this block is         depicted by multiple arrows, each denoting a single output voxel         of the array p_(d).

This interpolation is separably performed—first along the fast coordinate, and then along the z coordinate as described in (79)-(80). The spline transform part of each of the interpolations has been lifted up the hierarchical tree, so only the spline-FIR part is performed here. Specifically the spline transform for the z interpolation is performed in the pre-decomposition stage, and the spline transform for the fast-direction interpolation is performed in the IFFT block at the start of the kernel-stage.

2.2.4 2D Fan-Beam Geometry

We now present the block diagram for the RP method for the 2D fan-beam geometry in FIG. 22. It is a simplification of FIG. 21, the block-diagram for the 3D narrow cone method. Unlike the 3D narrow cone method, it operates on two dimensions instead of three. So the image is not indexed along the z coordinate and the projections are not indexed along the v coordinate. In all but the kernel stage, the 3D and 2D methods are identical in that the operations of the 2D method are exactly that of the 3D method restricted to a single slice. In the kernel stage the block labeled “SPL FIR+SUM” performs interpolation and summation just like in the 3D method. Unlike in the 3D method in which two-pass separable interpolation is performed, in the 2D method a 1D fast direction interpolation is performed as described in Section 1.3.6 and FIG. 14C-D. The sets of indices corresponding to the kernel stage images

_(n) are computed as described in Section 2.2.2(a), but contain 2D index pairs (n_(β), n_(α)), as opposed to 3D index triplets (n_(β), n_(α), n_(v)).

2.3 3D Cone-Beam Geometry: Wide Cone-Angle

The narrow-cone DIA method (Section 2.2) is attractive because it operates on 2D slices for the majority of the method and only performs 3D interpolations in the kernel-stage, but, as explained in Section 2.2.1, it is unable to compute rays whose inclination angle ξ is large in absolute value because the Fourier-domain support of the kernel-stage images is insufficient (FIGS. 19 F-G).

2.3.1 Decomposition Stage vs Kernel Stage Strategy

There are two possible strategies to compute rays with large cone angles.

1. Kernel Stage Strategy

In this strategy the main modification to the narrow-cone method is in the kernel-stage rather than the decomposition stage. This strategy is motivated by the observation that all the information necessary to compute any arbitrary ray already exists in the kernel-stage images of the narrow-cone method. The only problem is that components for a ray are distributed over multiple kernel-stage images. This idea is explained in more detail below and in FIGS. 23A-23D.

Recall from FIG. 19E that the Fourier support of each kernel-stage input image is a parallelepiped. The parallelepipeds corresponding all kernel-stage input images are denoted by by {S_(n): n=1, 2, . . . , 2·3^(L)} in FIG. 23A-C. The union of the Fourier support of all the kernel-stage input images is the full DTFT spectral support of the input image, i.e. the cube [−π, π]³ shown in FIG. 23D.

Consider the spectral support of a 3D PB projection with a large cone-angle ξ. As shown in FIGS. 18A-18B this spectral support is a 2D plane. Since e is large this 2D-planar spectral support is not fully contained within the spectral support of any single kernel-stage image, but it is contained inside the cube [−π, π]³. This means that different parts of this 2D-planar spectral support are contained within different sheared slabs representing the Fourier support of the kernel-stage input images.

So all the Fourier domain information necessary to construct a PB projection with a large cone-angle ξ is available in the kernel-stage images. But the complication is that different regions of the spectrum of this projection need to be extracted from different kernel-stage images and need to be reassembled to synthesize the 2D-plane that is the spectral support of a single 3D PB projection. If this extraction and reassembly were possible, this would imply that any 3D PB projection can be computed by taking the inverse 2D FFT of this reassembled spectrum. This further implies that any 3D ray can be synthesized by combining spectra of the kernel-stage input images.

2. Decomposition Stage Strategy

In this strategy the main modification to the narrow-cone method is in the decomposition stage rather than the kernel-stage. The broad outline of the algorithm remains the same, namely:

-   -   1. The images in the decomposition stage are arranged in a         hierarchical tree with the input image at the root. The         hierarchy is more complicated than the narrow-cone case to         accommodate the wide cone-angle. There are multiple ways of         organizing this 3D hierarchy. We describe a preferred embodiment         for the hierarchy in Section 2.3.2.     -   2. Just as in the narrow-cone case every child image is computed         by performing an image transformation and decimation of the         parent image.     -   3. The kernel-stage is very similar to the narrow-cone case         i.e., every output ray would be computed from a single         kernel-stage input image using interpolation and summation.         2.3.2 Hierarchical decomposition

We now describe in detail a preferred embodiment of the decomposition stage strategy. It is constructed such that every ray can be synthesized from a kernel-stage input image. We take a bottom-up approach to partitioning the 3D spectral support of the image in a hierarchical manner. Here is an outline of the strategy.

(a) Every ray that we want to synthesize is parameterized by a parallel-beam view angle (θ) and a cone-angle (ξ), as explained in Section 2.1. So considering the 2D θ-ξ plane, we know the limits of θ are (0°, 180°] and the limit of ξ is the maximum cone-angle. We determine how to partition the θ-ξplane such that every cell represents a single kernel-stage input image.

(b) FIGS. 24A-24B show the θ-ξ partitioning that is used, in effect, in the narrow-cone-angle method. Here the range of (θ, ξ) of interest is [−π/4, 3fπ/4)×[−ξ_(MAX), ξ_(MAX)], for some small ξ_(MAX). FIG. 24A shows the partitioning of the 2D Frequency plane, reproduced from FIG. 10, and described in Section 1.3.1. FIG. 24B shows how that partitioning is represented on the θ-ξ plane. The m^(th) wedge in FIG. 24A, which we know corresponds to the m^(th) kernel-stage image, is responsible for synthesizing rays whose parallel-beam view angles θ is in some interval [θ_(min) ^(L,m), θ_(max) ^(L,m)), which was specified earlier in equations (39)-(40).

In the narrow-cone-angle method all rays that have the same θ are produced from the same kernel image. So all rays from the rectangle-shaped, 2D interval [θ_(min) ^(L,m), θ_(max) ^(L,m))×[ξ_(min), ξ_(MAX)) are produced from the m^(th) kernel-stage image

(c) FIGS. 25A-25B demonstrates that the region of the θ-ξ plane corresponding to rays whose spectral support is fully contained in the kernel-stage image is shaped like a diamond. FIG. 25A shows a certain portion of the θ-ξ plane and FIG. 25B-E illustrates the 3D spectral support corresponding to four points in the θ-ξ plane

For simplicity of visualization let us consider the central (i.e. m=(3^(L)+1)/2) kernel-stage image which is concerned with θ, ξ close to (0, 0). In particular the θ range we are concerned with is [−θ*, +θ*) where θ*=θ_(max) ^(L,m)=arctan (0.5Δ/π). For this special case of m=(3^(L)+1)/2, θ_(min) ^(L,m)=−θ_(max) ^(L,m)=−θ*.

We know that the 3D spectral support of this kernel-stage image is a slab that is perpendicular to the ω_(s) axis. This slab is the rectangular cuboid illustrated in the subplots of FIG. 25B Now consider four different points in the θ-ξ plane: (i) (θ=0, ξ=0), (ii) (θ=θ*, ξ=0), (iii) (θ=0, ξ=ξ*), (iv) (θ=0*, =ξ*). The 2D spectral supports of the 3D PB projections at each of these view-angles is shown in FIGS. 25B-E respectively. Note that the spectral supports (i-iii) do lie inside the spectral support of the kernel-stage image, but the spectral support (iv) does not.

Furthermore consider point (ii) (θ=0*, ξ=0). Keeping θ unchanged but making ξ non-zero will cause the spectral support of the 3D PB projection to fall outside the spectral support of the kernel-stage image. Similarly consider point (iii) (θ=0, ξ=ξ*). Keeping ξ unchanged but making θ non-zero will cause the spectral support of the 3D PB projection to fall outside the spectral support of the kernel-stage image.

Similarly, fixing θ for intermediate values in (−θ*, +θ*) and calculating the ξ ranges for which the spectral support of the 3D PB projection stay inside the spectral support of the kernel-stage image, leads to the diamond-shaped cell shown in FIG. 25A.

This diamond-shape is seen to hold, empirically, for typical ranges of θ and ξ assuming that the underlying spectral support of the object is the cube [−π, π]³. Specifically, fix a point (θ₀, ξ₀) in the θ-ξ plane and a θ range (θ₀−θ*, θ₀+θ*). Then the parellelepiped bounding slab that contains the spectral support of 3D PB projections in this range will resemble one of the parallelpipeds in FIG. 23A-C. Then fixing θ for intermediate values in the range (θ₀−θ*, θ₀+θ*) and calculating the ξ ranges for which the spectral support of the 3D PB projection stay inside the parallelepiped bounding box, we find that the region in the θ-ξ plane is approximately diamond-shaped.

(d) Now that we have empirically established that the shape of the θ-ξ cell is a diamond, we determine a partition of the whole θ-ξ plane into diamond-shaped cells that results in an efficient implementation of the algorithm. One potential partitioning, illustrated in FIGS. 26A-26C, is to extend the low-cone-angle scheme in a greedy manner.

FIG. 26A shows the partitioning of the cone-angle cells that overlap the ξ=0 axis. We have determined empirically that the correct shape of the central cell, that contains the point (θ=0, ξ=0), is a diamond. We then use the 2D DIA partitioning as the basis for

-   partitioning the θ axis (ref equations (39)-(40)). And it follows     from item (c) abovethat each of the cells that lies on the ξ=0 axis     is diamond-shaped as shown in FIG. 26A.

Now consider a cell adjacent to and above any cell in the row we have constructed and shown in FIG. 26A i.e., cells for which the cone-angle ξ is a little greater than zero. Three of the four corners of this cell, denoted by the three dots in FIG. 26B, have already been determined. So we only need to find the fourth corner of this new cell.

Each of these three (θ,ξ) points corresponds to a spectral support that lies on a different plane. Specifically the normal to the plane has angles of azimuth and elevation equal to θ and ξ, respectively, relative to the ω_(f) axis. These three spectral support planes and their bounding box are shown in FIG. 26C. The planes are distinguished by the three distinct line styles of their edges: dashed (θ≠0, ξ=0), dotted (θ≠0, ξ≠0) and dot-dashed (θ=0, ξ≠0). We determine the minimal parallelepiped bounding box containing these three planes. This parallelepiped-shaped bounding box is shown by the in FIG. 26C by the heavy lines. (Specifically, the edges of the bounding box that are not coincident with the edges of the three planes are denoted by the heavy lines). The fourth point in this θ-ξ cell is determined by considering the mid-point of the cell, denoted θ, in FIG. 26B. We determine the fourth corner of the diamond by fixing θ={circumflex over (θ)} and finding the largest ξ such that the spectral support of (θ, ξ) is still contained in the parallelepiped-shaped box containing the other three spectral support planes. The line θ={circumflex over (θ)} is show by the dotted vertical line in FIG. 26B and the fourth point of the boundary of the diamond-shaped cell is shown by the star in FIG. 26B.

(e) Next we show how to transform the parallelepiped-shaped box containing the spectral support of an intermediate image to baseband using a sequence of two shears in order that the transformed image has a small bandwidth along the slow coordinate direction.

Recall that in the 2D case, the intermediate image I_(l,m) corresponds to the wedge w_(l,m) of the spectral support of the input image in FIG. 27A(a1). This wedge (shaded region) is contained in a parallelogram-shaped region that is symmetric about the origin (ω, =0, ω_(f)=0), indicated by the dashed lines. This parallelogram-shaped region can be “transformed to baseband” by a single shear as shown in FIG. 27A(a2). This baseband transformation causes the spectral support of interest to have a low bandwidth along the slow coordinate and therefore allows for sparse sampling along the slow coordinate direction.

In the 3D case the intermediate image corresponds to a region of the spectral support of the input image that is a union of planes, as shown by the parallelepiped bounding box in FIG. 26C. The parallelepiped bounding box can be transformed to baseband by a sequence of two shears as shown in FIG. 27B.

FIG. 27B(b1) shows a typical parallelepiped box containing the region of the spectral support of the input image that corresponds to a particular intermediate image. The first shear is in ω_(s)-ω_(f), i.e. the shear is along the w, coordinate direction but the magnitude of each 1D shift is proportionate to the ω_(f) coordinate. After the first shear the spectral support is as shown in FIG. 27B(b2). The second shear is in ω_(s)-ω_(z), i.e. i.e. the shear is along the ω_(s) coordinate direction but the magnitude of each 1D shift is proportionate to the ω_(z) coordinate. After the second shear the spectral support is as shown in FIG. 27B(b3) i.e., a cuboid that is aligned with the coordinate axes and is narrow along the ω_(s) coordinate. Just as in the 2D case, the small bandwidth along the w, coordinate direction allows for sparse sampling along the slow coordinate direction.

The transformation of an intermediate image to baseband using one or more shears implies that the intermediate-image is sampled in space on a sheared Cartesian grid; a Cartesian grid that has been subject to one or more shears.

(f) Extending the greedy method of computing adjacent rows of diamond shaped cells, explained in item (d) above, to the whole θ-ξ plane, by applying it recursively row after row, we get what is shown in FIG. 28A. Every diamond shaped cell here corresponds to a single kernel-stage input image i.e. a leaf node of the decomposition stage hierarchy.

(g) In order to construct the diamond shaped cells of the parent level in the hierarchical decomposition tree we simply combine the cells from FIG. 28A in groups of 3×3. FIG. 28B shows this combination. Here the cells from FIG. 28A are reproduced as is and denoted by thin lines to indicate that they are child cells. The parent cells in this stage are denoted by thick lines. Note that every thick-bordered parent cell consists of 3×3 child cells.

(h) At every level of the hierarchy 3×3 child cells are combined to construct a parent cell.

(i) It is empirically seen that for typical geometries, this scheme results in the slow-bandwidth of every child image/cell, after the two shears, being roughly 3× smaller than the slow-bandwidth of the parent image/cell with this strategy.

(j) FIG. 28C shows what the θ-ξ partitioning looks like at the top-most level. Here, as an example, consider a circular cone beam (CCB) geometry (FIG. 17B) where the maximum cone-angle is 10°. The procedure for a different cone angle is the same. So any ray to be computed can be parameterized by (θ, ξ) where θ531 [−45°, +135°) and ξ∈[−10°, +10° ]. At the top-most level we partition the rectangle [−45°, +135°)×[−10°, +10° ]. This rectangle is shown in FIG. 28C split in two parts in order to fit it on the page while maintaining the aspect ratio of the FIG. 28A-B. This rectangle is partitioned into the diamond shaped cells, truncated to ξ∈[−10°, +100], shown in FIG. 28C. Each truncated-diamond shaped cell here is constructed by combining the thick-bordered parent cells from (c) in groups of 3×3.

(k) Recall the Fourier domain description of the hierarchy of the 2D algorithm as described in Section 1.3.1 and FIGS. 9A-9B. Every intermediate image in the hierarchy I_(l,m) ^(d) corresponds to the wedge w_(l,m) in the Fourier domain, and can be used to compute 2D PB projections for some range of view-angles [θ_(min) ^(L,m), θ_(max) ^(L,m)] as specified by equations (39) and (39).

In the case of the wide cone-angle hierarchy described here, every intermediate image in the hierarchy corresponds to a diamond-shaped cell in the θ-ξ domain (such as shown in FIGS. 28A-28C), and can be used to compute a 3D PB projection parameterized by θ, ξ as long as (θ, ξ) lies inside this diamond-shaped cell.

Furthermore the cell in the θ, ξ plane corresponds to a subset of the spectral support of the input image. Specifically this subset is the union of all spectral support planes, each of which corresponds to a 3D PB projection, whose angles of azimuth and elevation (θ, ξ) lie within that diamond-shaped cell. Such a spectral support subset is illustrated in FIG. 26C.

(1) Compare the top-level partition for the 3D wide-cone-beam algorithm shown in FIG. 28C to its equivalent for the 2D fan-beam algorithms shown in FIG. 9A

In the 2D case, at the top level, the input image has six children images. Each child corresponds to a wedge-shaped subset of the Fourier support, labeled W_(1,1), . . . , W_(1,6) in FIG. 9A, and corresponds to a roughly 30° range of PB view-angles.

Correspondingly in the 3D wide-cone-beam case, as shown in FIG. 28C, there are six diamond-shaped cells, labeled “Cell 1” to “Cell 6”, that sit on the θ axis. At its widest extent, i.e. at ξ=0, the θ-range of each cell is exactly the same as in the 2D case. In addition to these six “on-axis” cells there are number of cells that do not lie on the θ axis that are responsible for rays that lies outside the domain of the on-axis cells.

(m) FIGS. 28C-A describe the hierarchical partitioning scheme of the θ-ξ plane used in the decomposition stages of the wide cone-angle RP method. To apply this method we translate this to a hierarchical block diagram, similar to the those for the previously described methods (such as FIG. 21), in which the parent-to-child branching mirrors the hierarchical partitioning of the θ-ξ plane shown in FIGS. 28A-28C.

Since FIG. 28C shows 6×3 cells 6 cells corresponding to the on-axis diamonds in FIG. 28C and 6×2 corresponding to off-axis diamonds, the number of children at the top level of the block diagram is 18=6×3. And since FIG. 28A-C shows that in lower levels of the hierarchy, every parent cell is divided into 3×3 children cells, the block diagram of the method will also have a 9-way partitioning of all but the top levels.

For the diamonds that are partial, i.e. truncated by the global limits of θ and ξ, there will be fewer than 9 children per parent since the children that fall outside the partial diamonds are ignored.

The aspects (a)-(m) enumerated above provide the outline of the strategy for partitioning the 3D spectral support of the image in a hierarchical manner.

In this section we have described the hierarchical partitioning of the ξ-θ plane that underlies the decomposition stage of the wide-cone-beam method. We will translate this hierarchical partitioning into a hierarchical block diagram, such as shown in FIG. 21. Before we do so we show that we are able to achieve our target computational cost.

2.3.3 Computational Cost

At first glance, it seems like we have a problem. Recall that in the narrow-cone-angle (RP) case, in every level the number of images increases by a factor of R=3 but the slow bandwidth, and consequently the number of samples in an image, decreases by a factor of R, thus maintaining the constancy of the total number of samples in every level. This results in the O(N²L) cost of the L decomposition levels.

In the wide-cone angle case depicted in FIG. 28, each parent cell is constructed by combining 9 child cells. But recall also that the slow bandwidth of each child image is 3× smaller than the slow bandwidth of the parent image. So in every level the number of images increases by a factor of R² but the slow bandwidth of each image decreases by a factor of R. This suggests that the number of samples in every successive level will increase by a factor of R. This would potentially severely negatively affect computational cost even if only restricted to the lower levels of the decomposition tree.

If we were able to ensure that the number of samples in a child image was roughly R²×less than the number of samples in the parent image, then we would be able to maintain the O(N²L) cost of the decomposition levels. Fortunately, we can achieve this by recognizing that rays for a particular (θ, ξ) cell are also spatially localized, and the intermediate images of the hierarchy can be spatially cropped along z to gain the desired additional factor of R in cost.

2.3.4 Incorporating Spatial Locality of Rays

Without loss of generality, consider the circular cone-beam geometry shown in FIG. 29. Here the field of view is represented by the tall cuboid. Consider the set of all rays corresponding to a kernel-stage image i.e. within a small θ and ξ range. These rays are indicated by the dashed lines. It is easy to see that all these rays will also be spatially localized within the field of view i.e. they will be contained within some limited volume, denoted by the slanted box surrounding the dashed lines. Therefore the kernel-stage image from which these rays are synthesized can also be cropped to the region of the box. It is not hard to imagine that, upon a shearing along z, the box will have a limited extent in the z direction.

Once we have identified the cropped image volumes that correspond to the kernel-stage images, we want to build the images in upper levels by hierarchically combining the images in the lower levels in a manner that enforces the R²× scaling of the number of samples in an image. We have already established that we get an Rx scaling in slow bandwidth from parent to child, and consequently an R× reduction in the number of samples along the slow coordinate direction. So all that remains is to demonstrate the R× scaling in z-extent from the parent to child image that will result in an R× reduction in the number of samples along the z coordinate direction. Combining the two R× scalings will result in a total R²× scaling in the number of samples from parent to child.

FIGS. 30A-30C demonstrate the R× scaling in z-extent. Here we assume that the FOV has a cylindrical shape. This both makes the analysis easier and is realistic for typical tomographic geometries. FIG. 30A shows a set of rays for a fixed (θ₀, ξ₀). They are parallel to each other and share the same elevation angle. Consequently these rays form a plane whose intersection with the cylindrical shell is an ellipse in this plane. We say that this ellipse corresponds to the point (θ₀, ξ₀) in the θ-ξ plane. Now consider four corners of a kernel-stage θ-ξ cell, i.e. a black diamond in FIG. 28A. FIG. 30B shows the four ellipses that correspond to the four corners of a kernel-stage cell. As expected they are spatially localized.

Now consider a volume containing the ellipses corresponding to all the points in this kernel-stage (θ, e)-cell. Let us call this the containing volume of that cell. This containing volume is determined by maximizing and minimizing z for each fixed (x, y) on the edge of the cylinder. The containing volume is therefore the subset of the cylinder that is in between two planes. And each of these planes when intersected with the cylindrical shell forms an ellipse in 3D. So the containing volume is defined by a pair of ellipses.

FIG. 30C shows three pairs of ellipses. The inner most pair is denoted by solid lines, the next outer pair is denoted by dashed lines, and the outer most pair is denoted by dotted lines. These three pairs of ellipses correspond to the containing volumes of a cell in the θ-ξ plane, its parent cell, and its grand parent cell respectively. Empirically it appears that, due to the convexity of the geometry, the borders of the region can be computed by considering the four corners of the θ-ξ cell only. It is also empirically seen that the volume of these containing volume regions scales by a factor of R× from child to parent.

One caveat is that the containing volume of a given (θ, ξ) cell is not just a single volume as depicted in FIG. 29, but a union of multiple such volumes. For the CCB case for example, rays with FB view-angle β and β+π are no longer synthesized from the same volume. In addition to the red box shown in FIG. 29, there will be a similar volume (flipped about the origin in x, y, and z) that will contain the corresponding rays with FB view-angle β+π.

In the case of the helical cone beam (HCB) geometry (FIG. 17A), there will O(T) cropped volumes where T is the number of turns of the helix. Since the total number of samples summed across all the cropped sub-volumes will be similar to the number of samples in the whole image, the overhead of maintaining multiple volumes will only marginally increase the computational cost of the algorithm.

2.3.5 Image Transformations

We have so far established the hierarchical tree structure of the decomposition stage of the algorithm as promised in item 1(a) of Section 2.3.2. Now we can move on to item 1(b) of Section 2.3.2, i.e., constructing the image transformation between the parent and child of every node in the hierarchy.

Similar to the 2D and narrow-cone methods, our general strategy here is two-fold. We choose image transformations that (i) allow for the intermediate image to have a small bandwidth along one coordinate direction i.e. the slow direction and (ii) can be efficiently implemented.

We have already shown, in Section 2.3.2 item (d) and the accompanying FIGS. 27(b1-b3), that a sequence of two shears can be applied to the input image in order that the spectral support of any intermediate image of interest has a small bandwidth in the slow coordinate direction. This is what we call a “transformation to baseband”. Recall that Section 1.1.3 specifies the dual relationship between spatial domain and Fourier domain linear transformation operations. In particular, Section 1.1.3 implies that a shear in the 3D Fourier domain correspond to a shear in the spatial domain.

FIGS. 31A-31E depict the transformation to baseband in the Fourier and space domains. In FIG. 31A the θ-ξ cell corresponding to the intermediate image that we are considering is shown by the thick-lined diamond. We have picked a kernel-stage image here, i.e. a diamond-shaped cell from FIG. 28A.

Recall from Section 2.3.2(k) that this intermediate image corresponds to a subset of the spectral support of the input image. FIG. 31B shows this subset of the spectral support of the input image. This figure is similar to FIGS. 25 and 26C, but because all the axes are of equal scaling, and the intermediate image corresponds to the lowest level of the hierarchy (i.e. a small θ-ξ cell), the spectral support is a very thin parallelepiped-shaped slab.

FIG. 31C shows the containing volume of this kernel-stage image, as explained in Section 2.3.4. FIG. 31D represents the spectral support of this kernel-stage image when transformed to baseband. The transformation matrix in the Fourier domain is a shear along ω_(s) i.e. {right arrow over (ω)}_(g)=V_(θ,ξ) ^(T){right arrow over (ω)}_(f) where

$V_{\theta,\xi}^{T} = {{\begin{bmatrix} 1 & 0 & 0 \\ {{- \tan}\; \theta} & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\;\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & {\tan \; \xi \; \cos \; \theta} \\ 0 & 0 & 1 \end{bmatrix}} = \begin{bmatrix} 1 & 0 & 0 \\ {{- \tan}\; \theta} & 1 & {\tan \; \xi \; \cos \; \theta} \\ 0 & 0 & 1 \end{bmatrix}}$

Here the order of coordinates is ω_(f), ω_(s), ω_(z).

The transformation to go from the parent to a child image in a node is dependent on the central (θ, ξ) of the cells corresponding the parent and the child images. The transformation involves a shear along ω_(s) and a spatial cropping along z at least. Denoting by V_(p) and V_(x) the linear “baseband”-transformations of the parent and child, then the ω_(s)-shear to go from the parent to the child involves undoing the parent baseband (“bb”) transformation and applying the child baseband transformation. Let ω₀ be any point in the spectral support of a kernel-stage image eg. a point in the spectral support slab shown in FIG. 31B. Define

{right arrow over (ω)}_(bb,p)

V _(p) ^(T){right arrow over (ω)}₀ and {right arrow over (ω)}_(bb,c)

V _(c) ^(T){right arrow over (ω)}₀

Then the parent to child transformation is still a ω_(s)-shear

$\begin{matrix} {V_{p\rightarrow c}^{T}\overset{\Delta}{=}{{V_{c}^{T\;}V_{p}^{- T}} = {\begin{bmatrix} 1 & 0 & 0 \\ {{- \tan}\; \theta_{c}} & 1 & {\tan \; \xi_{c}\; \cos \; \theta_{c}} \\ 0 & 0 & 1 \end{bmatrix}\;\begin{bmatrix} 1 & 0 & 0 \\ {{- \tan}\; \theta_{p}} & 1 & {\tan \; \xi_{p}\; \cos \; \theta_{p}} \\ 0 & 0 & 1 \end{bmatrix}}^{- 1}}} \\ {= {\begin{bmatrix} 1 & 0 & 0 \\ {{- \tan}\; \theta_{c}} & 1 & {\tan \; \xi_{c}\; \cos \; \theta_{c}} \\ 0 & 0 & 1 \end{bmatrix}\;\begin{bmatrix} 1 & 0 & 0 \\ {\tan \; \theta_{p}} & 1 & {{- \tan}\; \xi_{p}\; \cos \; \theta_{p}} \\ 0 & 0 & 1 \end{bmatrix}}} \\ {= \begin{bmatrix} 1 & 0 & 0 \\ {{{- \tan}\; \theta_{c}} + {\tan \; \theta_{p}}} & 1 & {{\tan \; \xi_{c}\; \cos \; \theta_{c}} - {\tan \; \xi_{p}\cos \; \theta_{p}}} \\ 0 & 0 & 1 \end{bmatrix}} \end{matrix}\quad$

Recall from Section 1.1.3 that when the transformation of a spectral support point is defined by V^(T) (i.e., {right arrow over (ω)}_(g)=V^(T){right arrow over (ω)}_(f)) then the corresponding spatial domain transformation is V (i.e. y({right arrow over (x)})=g(V{right arrow over (x)})). So the spatial domain transformation that corresponds to V_(p→c) ^(T) is V_(p→c). It turns out that V_(p→c) can be separably decomposed into a shear along f (in the f-s plane) and a shear along z (in the z-s plane).

$\begin{matrix} {V_{p\rightarrow c} = \begin{bmatrix} 1 & {{{- \tan}\; \theta_{c}} + {\tan \; \theta_{p}}} & 0 \\ 0 & 1 & 0 \\ 0 & {{\tan \; \xi_{c}\; \cos \; \theta_{c}} - {\tan \; \xi_{p}\cos \; \theta_{p}}} & 1 \end{bmatrix}} \\ {{\begin{bmatrix} 1 & {{{- \tan}\; \theta_{c}} + {\tan \; \theta_{p}}} & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\;\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & {{\tan \; \xi_{c}\; \cos \; \theta_{c}} - {\tan \; \xi_{p}\cos \; \theta_{p}}} & 1 \end{bmatrix}}} \end{matrix}\quad$

The shears can actually be performed in any order.

The spatial cropping can be computed from the FOV boundary of the parent and child images (such as shown in FIG. 31E).

2.3.6 Fourier or Spatial Domains

In the narrow-cone method we operate in the Fourier-space-space (fast-slow-z) hybrid domain, but the shearing along z suggests that it might be advantageous to let the z coordinate also be in the Fourier domain. Let us compare how various modules of the algorithm would be implemented if in a Fourier-space-Fourier domain or Fourier-space-space domain:

The case of Fourier-space-Fourier (fast-slow-z) hybrid domain would be as follows:

-   1(a) Shearing: It turns out that this operation can be performed,     just as in the small cone-angle case, by a complex multiplication.     It is, perhaps, easiest to see this as a f-s shear followed by a z-s     shear. From the small cone-angle case we know that in the     Fourier-space hybrid domain, when a spatial shear is performed along     the Fourier coordinate direction, it is equivalent to a     pixel-by-pixel complex multiplication. In our case, note that each     of our two shears (f-s and z-s) conforms to this paradigm, and     therefore each one can be performed by a pixel-by-pixel complex     multiplication. We can then combine the two complex multiplications     into a single pixel-by-pixel complex multiplication. -   1(b) Decimation: Since the decimation is performed along the slow,     spatial coordinate it is unchanged from the small cone-angle case. -   1(c) Cropping along z: Cropping in a spatial coordinate direction is     equivalent to filtering and decimation in the Fourier domain. So the     wide-cone-angle method will require an extra filter-decimation along     the ω_(z) coordinate.     The case of Fourier-space-space (fast-slow-z) hybrid domain would be     as follows: -   2(a) Shearing: We want to perform a f-s shear followed by a z-s     shear. The f-s shear being in a hybrid Fourier-space domain can be     performed by complex multiplication. And the z-s shear being fully     in the spatial domain will require an interpolation along z. If the     IIR part of the z-interpolation is lifted to the top level this will     require only an FIR filtering. -   2(b) Decimation: Since the decimation is performed along the slow     spatial coordinate it is unchanged from the small cone-angle case. -   2(c) Cropping along z: Cropping along the spatial coordinate is a     no-op.     The advantages and disadvantages of implementing specific     operations/modules in the Fourierspace-Fourier vs the     Fourier-space-space domain are as follows:     -   Z-shearing: lower cost and higher quality in FSF than in FSS.         But (a) the poor quality in FSS can be improved by using a         compensating pre/post filter, and (b) to reduce computations in         FSS the IIR part of the z-shearing can be lifted to the top of         the decomposition tree     -   Cropping: will be a no-op in FSS but will be an expensive         filter-decimation in FSF

2.3.7 Tight Spatial Cropping

The image sizes we computed were based on a tight cropping of the intermediate images along the z-coordinate. But can we achieve this tight cropping in practice? As seen in FIG. 31D the transformation to baseband naturally reduces the extent of the FOV along the z coordinate but the extent is greater than assumed by the tight-cropping. If the naive approach is taken and the image is simply cropped according to the maximum z extent of the FOV the increase in image size in the best case is 1.0× (for ξ=0) and in the worst case is 7× (for θ=π/4 and ξ≈15°)

We can achieve a tighter cropping than this, but the strategy depends on whether the z coordinate is in the spatial or Fourier domain.

1. Fourier-Space-Fourier domain

Because both f and z are in the Fourier domain, we can perform spatial shears in f-z by doing the equivalent operation in the Fourier domain. It turns out that the spatial transformation that best minimizes the z-extent of the FOV boundary is an additional shear in z-f (i.e., a shear along the z direction, where the magnitude of the 1D shift is a linear function of f). The equivalent Fourier domain operation is a shear along ω_(f).

As shown in FIGS. 32A-32E, the additional z-f shear reduces the z-extent, without affecting the bandwidth requirements. The top most row (FIGS. 32A-B)) shows the spectral support (A) and spatial support (B) of a particular intermediate in the frame of the input image. After a transformation to baseband (a sequence of two shears as specified in FIG. 27B), the spectral support (FIG. 32C) has a narrow bandwidth along ω_(s), as desired, but the spatial support (FIG. 32D) does not have a limited enough extent in z. In order to achieve a limited extent in z, an additional shear (in z-f) can be applied to the image. This additional shear preserves the low ω_(s) bandwidth (FIG. 32E) but also reduces the z spatial extent (FIG. 32F). The reduction in z extent is more clearly seen in FIG. 32G.

The case shown in FIGS. 32A-32E is the worst-case (θ, ξ) which had a 7× tightness-ratio previously. With the additional z-f shear the tightness ratio reduces to 1.3×

Since the additional z-f shear will be implemented with 1D interpolation along the ω_(f) coordinate. We can use spline FIR filtering (in the Fourier domain) to perform this. If a shear such as this were applied at every level in the decomposition tree there would be a cascade of interpolations along the ω_(f) axis, one at every level. Since filtering in one domain is equivalent to multiplication by a window in the dual domain, this cascade of interpolations would be equivalent to a cascade of multiplications by a window along the f axis. This can be compensated by multiplying by the appropriate space domain window along f after the final IFFT.

2. Fourier-Space-Space Domain

If we were operating fully in the space domain (i.e. space-space-space), we could crop the image volume arbitrarily for any (f, s)-column. But because we are operating in Fourierspace-space we are constrained to crop all the columns that share the same s coordinate exactly the same, since the fast coordinate is in the Fourier domain. Unfortunately this constraint seems to limit the tightness of the potential cropping. For the same bad case with the 7× tightness-ratio previously, the additional z-s shear only reduces the tightness ratio to 5.4×. Fortunately, as explained below, there is a solution to this problem, which is to make the top level of the decomposition hierarchy operate in the fully spatial domain (space-space-space).

The images for which the cropping is not tight are those with large θ and ξ. i.e. cells in the θ-ξ plane for which |θ+ξ|>15°. Transforming these images to baseband involves the use of large shears along the fast and z coordinate directions. But the large shearing distorts the containing volumes of those cells in such a way that points that share the same s coordinate had greatly differing z-extents causing the z cropping to be inefficient.

So a solution to this is to avoid the need to use such large shears. We modify the top level in decomposition stage to operate in the fully spatial (space-space-space) domain, rather than the Fourier-space-space domain. Operating in the fully spatial domain frees us from using shears and allows the use of full 3D rotations. Rotations unlike shears allow for the Fourier spectrum of interest to be rotated to baseband without causing the containing volume to be distorted in a manner that prevents tight cropping.

One strategy is to partition the whole θ-ξ plane into identically-shaped diamond cells, each with a full θ range of 30°. At the top level we perform a separable 3D rotation of the input image that effectively centers each diamond at (θ=0, ξ=0). We then decimate along the slow direction and perform a Fourier transform along the fast direction to transform into the Fourier-space-space domain. In the lower decomposition levels we operate in the Fourier-space-space domain as previously suggested.

2.3.8 Kernel Stage

As mentioned in Sec 2.3.1 item 1(c) the kernel-stage of the wide-cone-beam method is very similar to the narrow-cone-beam method (Sec 2.2.2). Here too rays are synthesized from the kernel-stage input image by a two-part resampling operation (fast-direction and z-direction) followed by summation along the slow-direction and weighting. Here too the coordinates of the resampling are computed by transforming the ray from the real-world coordinate system to that of the kernel-stage input image. This transformation is computed by accumulating all the parent-to-child transformations from the root of the decomposition tree, i.e. the input image of the RP operator, to the leaf, i.e. the kernel-stage input image.

The whole operation can be summarized by the following equation:

$\begin{matrix} {{P_{d}\left\lbrack {m_{\beta},m_{\upsilon},m_{\alpha}} \right\rbrack} = {w_{\beta,\upsilon,\alpha}{\sum\limits_{m_{s}}{I_{L,n_{\beta,\upsilon,\alpha}}^{d}\left\lbrack {{h_{f}^{\beta,\upsilon,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s},{h_{z}^{\beta,\upsilon,\alpha}\left\lbrack m_{s} \right\rbrack}} \right\rbrack}}}} & (82) \end{matrix}$

Here n_(β,v,α) denotes the mapping of a ray with conebeam parameters (β, v, α) to a particular kernel-stage image as explained in Section 2.3.2. As explained in Section 2.2.2, h_(f) and h₂ are the parameterizations of the 3D line onto which the interpolation is performed which allows for a separable implementation. w_(β,v,α) is a scaling factor that might be necessary to compensate for the sparse sample spacing of kernel-stage image.

2.3.9 Algorithm Outline

Putting together the previously described components we present an outline of the complete wide-cone RP method. The implementation is slightly different when operating in the Fourier-space-Fourier (FSF) domain or Fourier-space-space (FSS) domain. The block diagram for the FSS-domain method is shown in FIG. 33. This block diagram is very similar to the block-diagram for the narrow-cone-angle algorithm. The input 3D image volume y^(d) is at the top of the block-diagram and the output 3D projection volume P is at the bottom of the block-diagram.

-   -   Pre-decomposition stage: The input image y^(d) has eighteen         children (ref FIG. 28C). Each branch is first subjected to an         image transformation denoted by xform.The transformation first         involves a fully spatial 3D rotation as prescribed in Section         2.3.7.2. Each branch corresponds to a rotation by the following         eighteen 3D angles (azimuthal,elevation):

{(−30°,0°),(0°,0°), . . . ,(+120°,°)}∪{(−15°,+150°),(+15°,15°), . . . ,(+135°,15°)}∪{(−15°,−15°),(+15°,−15°), . . . ,(+135°,−15°)}

The rotation can be followed by an upsampling along f, z or s, for improved accuracy (Section 1.3.2), which can be incorporated into the separable rotation at no extra cost. A cropping along z can be incorporated to exploit spatial locality (Section 2.3.4). This sequence of three operations that together makes up the image transformation denoted by xform, is followed by a decimation along the slow coordinate axis, as detailed in Section 1.2.4.B.2, and denoted here by Decim. The spatial transformation is followed by an FFT along f to transform into the FSS domain. In the case of FSF there is an additional FFT in z to transform into the FSF domain. • Decomposition stage: Every parent has 9 children. Each branch is first subject to an image transformation denoted by xform. This transformation is an f-s shear followed by z-s shear and cropping along z.

In the case of FSS this is a voxel-wise complex multiplication (Section 2.3.6.2(a)), followed by 1D interpolation and cropping along z (Section 2.3.6.2(c)).

In the case of FSF this is a single voxel-wise complex multiplication (Section 2.3.6.1(a)) and a decimation along ω_(z) for z-cropping (Section 2.3.6.1(c)). Prior to z-cropping an optional z-f shear, implemented by 1D interpolation along ω_(f), can be applied to allow for tighter cropping (Section 2.3.7.1).

Finally decimation, denoted by Decim, is applied along the s coordinate direction.

-   -   Kernel Stage: Just as in the narrow-cone case, an IFFT along f         is performed to return the image to the fully spatial-domain. In         the case of FSF an additional IFFT along z is performed. The set         of indices         _(n) of output rays to be synthesized from a given kernel-stage         image I_(L,n) ^(d) are determined from a lookup table that has         previously been computed similar to the 2.5D case (Section         2.2.2(a)).

Then the set of output rays are computed by iterating through the set of indices

_(n) and interpolating from the 3D image volume J_(L,n) ^(d) onto a 1D signal and summing along the slow coordinate direction (ref Section 2.2.2 and FIG. 20) to compute the rays of the output projections. For typical CT geometries this interpolation can be done in a separable manner. This last operation is indicated by the block labeled Resmpl+sum.

The specific embodiment we present here is not necessarily the most efficient on every computer architecture. There are a wide variety of modifications of this outline that could result in more efficient implementations. These include, but are not limited to, the following.

-   -   Using a decomposition hierarchy that uses a different radix         (parent to child branching factor) or different branching         factors in different nodes.     -   Partitioning the θ-ξ domain differently to result in different         decomposition hierarchies     -   Using a different mix of the three domains of interest i.e.         fully spatial, FSS and FSF which result in a different ordering         of operations.     -   Using different upsampling factors in different nodes of the         hierarchy.     -   Splitting the interpolations into an IIR and FIR part and         lifting the IIR part to a different node of the decomposition         tree.     -   Incorporating additional image transformations or skipping some         of the image transformation operations described above. For         example replacing a set of image transformations with a         theoretically less optimal set of image transformations that is         in practice more computationally efficient.     -   Incorporating compensating filters in the Fourier or space         domains to achieve higher accuracy. For example the spline         interpolations used in the decomposition stages method could         have a cumulative effect of suppressing higher frequencies. To         compensate for this a filter that boosts higher frequencies can         be applied in the kernel stage by a pixel-wise multiplication in         hybrid space-Fourier domain prior to the IFFT in the         Kernel-stage.

2.4 Backprojection

As explained in Section 1.1.1 backprojection is the mathematical adjoint operation to reprojection (Chap 2.7 of [9]). The block diagram of the DIA backprojection operator for the wide cone-angle geometry is as shown in FIG. 34 and more details are given in Sections 2.4.1 to 2.4.3.

The input to the backprojection operator is a projection volume P, shown at the top of the block-diagram, and the output is an image volume y^(d), shown at the bottom of the block-diagram. The backprojection block diagram is constructed by the operation of flow graph transposition (p.410 of [4]): reversing the flow of the reprojection block diagram; replacing branches with summation junctions and vice versa, and replacing the individual blocks with their respective mathematical adjoints. So the following description is a reversal of that presented in 2.3.9. And the constitutent operators here are adjoints of the operators described there.

2.4.1 Kernel Stage

The input to backprojection is the 3D volume of projections. The mapping of kernel-stage image I_(L,n) ^(d) to the individual rays indices (m_(β), m_(α), m_(v)) is determined by looking up a precomputed lookup table

_(n) similarly to that described in Section 2.2.2(a). For the wide cone-angle case the partitioning of θ-ξ looks like FIGS. 28A-28C and for the narrow cone-angle case this partition looks like FIGS. 24A-24B.

The kernel-stage is shown at the top of FIG. 34. Different subsets of the projection volume are used as input to different branches of the kernel-stage. The first operation is denoted by the block labeled sparseBP. This refers to a backprojection onto an image grid that is sparsely sampled along the slow coordinate; specifically a sheared Cartesian grid as explained in Section 2.3.2(e). sparseBP is an exact adjoint to the block labeled Resmpl+sum in FIG. 33 (and defined in (82)).

Before we describe the adjoint operations, let us first explicitly restate the forward operations in the kernel-stage of the reprojection method. There is a sequence of three operations: fast-direction interpolation, z-direction interpolation, and slow direction summation and weighting. The fast-direction interpolation operates on a kernel-stage input image I_(L,n) ^(d) [m_(f), m_(s), m_(z)] and outputs g₁i[m_(β,α), m_(s), m_(z)]. Here the first coordinate of the input image (m_(f), the fast coordinate index) is replaced in the output image by an index that runs over all the distinct pairs of (β, α) that are mapped to this kernel image I_(L,n). The z-direction interpolation operates on g₁ and outputs g₂[m_(β,α), m_(s), m_(v),]. Here the last coordinate of the input image (nm, the z coordinate index) is replaced in the output image by m_(v), the detector row index.

Combining the separable interpolation and summation equations, (79)-(82), and, the spline interpolation equations (5), we get:

${g_{1}\left\lbrack {m_{\beta,\alpha},m_{s},m_{z}} \right\rbrack}\overset{(79)}{=}{{I_{L,n}^{d}\left\lbrack {{h_{f}^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s},m_{z}} \right\rbrack}\overset{(5)}{=}{\sum\limits_{m_{f}}{{I_{L,n}^{d}\left\lbrack {m_{f},m_{s},m_{z}} \right\rbrack}{{\psi \left( {{h_{f}^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}} \right)}\mspace{14mu}\lbrack{fast}\rbrack}}}}$ ${g_{2}\left\lbrack {m_{\beta,\alpha},m_{s},m_{\upsilon}} \right\rbrack}\overset{(80)}{=}{{g_{1}\left\lbrack {m_{\beta,\alpha},m_{s},{h_{z}^{\beta,\alpha,\upsilon}\left\lbrack m_{s} \right\rbrack}} \right\rbrack}\overset{(5)}{=}{\sum\limits_{m_{z}}{{g_{1}\left\lbrack {m_{\beta,\alpha},m_{s},m_{z}} \right\rbrack}{{\psi \left( {{h_{z}^{\beta,\alpha,\upsilon}\left\lbrack m_{s} \right\rbrack} - m_{z}} \right)}\mspace{14mu}\lbrack z\rbrack}}}}$ $\mspace{79mu} {{P_{d}\left\lbrack {m_{\beta},m_{\alpha},m_{\upsilon}} \right\rbrack}\overset{(82)}{=}{w_{\beta,\upsilon,\alpha}{\sum\limits_{m_{s}}{{g_{2}\left\lbrack {m_{\beta,\alpha},m_{s},m_{\upsilon}} \right\rbrack}\mspace{14mu}\left\lbrack {{sum},{weight}} \right\rbrack}}}}$

The adjoints of these operations are performed in reverse order, so reversing input and output:

$\begin{matrix} {{g_{2}\left\lbrack {m_{\beta,\alpha},m_{s},m_{\upsilon}} \right\rbrack} = {w_{\beta,\upsilon,\alpha}{{P_{d}\left\lbrack {m_{\beta},m_{\alpha},m_{\upsilon}} \right\rbrack}\mspace{14mu}\left\lbrack {{sum},{weight}} \right\rbrack}}} & (83) \\ {{g_{1}\left\lbrack {m_{\beta,\alpha},m_{s},m_{z}} \right\rbrack} = {\sum\limits_{m_{\upsilon}}{{g_{2}\left\lbrack {m_{\beta,\alpha},m_{s},m_{\upsilon}} \right\rbrack}{{\psi \left( {{h_{z}^{\beta,\alpha,\upsilon}\left\lbrack m_{s} \right\rbrack} - m_{z}} \right)}\mspace{14mu}\lbrack z\rbrack}}}} & (84) \\ {{I_{L,n}^{d}\left\lbrack {m_{f},m_{s},m_{z}} \right\rbrack} = {\sum\limits_{m_{\beta,\alpha}}{{g_{1}\left\lbrack {m_{\beta,\alpha},m_{s},m_{z}} \right\rbrack}{{\psi \left( {{h_{f}^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}} \right)}\mspace{14mu}\lbrack{fast}\rbrack}}}} & (85) \end{matrix}$

The operations in (84)-(85) are known as anterpolation i.e. the adjoint of interpolation. While here we have described a separable implementation of the forward and adjoint operations, the kernel could be implemented in a non-separable way. The backprojection weights w_(β,v,α) are chosen to be equal to the reprojection weights.

After the sparse BP an FFT is performed along the fast coordinate direction to transform the image from the spatial domain to the hybrid space-Fourier domain. If the FFS domain is used an additional FFT is performed along the z coordinate direction.

2.4.2 Decomposition Stage

In every node of the decomposition stage in FIG. 34 a certain number of children image are combined to form a parent image. Each child image is first subject to the adjoint of decimation i.e. interpolation, denoted by the block labeled Interp. This is a 1D operation along the slow coordinate in which the sample rate is increased by a factor of D

Following the interpolation an image transformation is performed on the image. This is denoted by the block labeled xform. This image transformation is the adjoint of the corresponding transform in the reprojection method so the adjoints of each constituent operation are performed in reverse order. The adjoint of the voxel-wise complex multiplication is a complex multiplication by the complex conjugate of the original multiplicative factor, and the adjoint of interpolation is anterpolation.

So in the hybrid domain where the forward operater is an f-s shear and uses a voxel-wise complex multiplication by e^(jαm) ^(s) ^(2πk) ^(f) ^(/N) ^(f) , as described in (81), the corresponding node of the adjoint operator is a voxel-wise complex multiplication of its complex conjugate i.e., e^(jαm) ^(s) ^(2πk) ^(f) ^(/N) ^(f) . And in the case where the forward operator is a z-s shear and uses a voxel-wise complex multiplication by e^(jαm) ^(s) ^(2πk) ^(z) ^(/N) ^(z) the corresponding node of the adjoint operator would use a voxel-wise complex multiplication by its complex conjugate i.e., e^(jαm) ^(s) ^(2πk) ^(z) ^(/N) ^(z) .

On the other hand, in the space domain, where the forward operator is an f-s shear and the expression for the forward filtering operator is (extending (27) from 2D to 3D): g₂[·, m_(s), m_(z)]=g₁ [·, m_(s), m_(z)]*h_(d) ^(αm) ^(s) where h_(d) ^(τ)[m]

ψ(m+τ) represents a delay by τ using the basis function ψ, then the corresponding node of the adjoint operator performs the negative delay i.e. {tilde over (g)}₁[·, m_(s), m_(z)]={tilde over (g)}₂ [·, m_(s), m_(z)]*h_(d) ^(−αm) ^(s) . In the case where the forward operator is a z-s shear and the expression for the forward filtering operator is g₁[m_(s), m_(z), ·]=g₁[m_(s), m_(z), ·]*h_(d) ^(αm) ^(s) , then the corresponding node of the adjoint operator will perform the negative delay i.e. {tilde over (g)}₁[m_(s), m_(z), ·]={tilde over (g)}₂ [m_(s), m_(z),·]*h_(d) ^(−αm) ^(s) .

Following the image transformation the children images are added together to produce the parent image.

2.4.3 Post-Decomposition Stage

The post-decomposition stage, shown at the bottom of FIG. 34, is the adjoint to the pre-decomposition stage described in Section 2.3.9. First an IFFT along the fast coordinate is performed to return the image from the hybrid space-Fourier domain to the space domain. In the case of FFS an additional IFFT is performed along the z coordinate.

The block labeled Interp is the adjoint to the decimation block in the pre-decomposition stage of FIG. 33. If the decimation in the reprojection block diagram is a decimation by D along the slow direction as specified in (7), then the corresponding block of the backprojection block diagram is an interpolation along the slow direction by an integer factor D as specified by (6). The block labeled xform is an image transformation which is the adjoint of the image transformation indicated by the block xform in the pre-decomposition stage of FIG. 33.

2.4.4 Narrow Cone-Angle Backprojection

The description in Sections 2.4.1-2.4.3 and FIG. 34 refer to wide cone-angle backprojection. The block diagrams for the narrow cone-angle geometry (FIGS. 35 and 36) are simplifications of FIG. 34.

In FIG. 35 we show narrow cone-angle backprojection in the hybrid domain. It is the adjoint of FIG. 21. It is similar to the wide cone-angle blockdiagram and simpler in the following ways. In the kernel stage the blocks labelled kernel BP are similar to the blocks labeled sparse BP in FIG. 34. The narrow cone-angle implementation is similar to the wide cone-angle implementation, and simpler in that the mapping of rays to kernel-stage image depends only on θ and not ξ. In the decomposition stages the narrow cone-angle implementation is simpler than the wide cone-angle implementation in that the z-slices of the intermediate images are operated on independently of each other. In the preferred embodiment, in the decomposition stages, the branching factor is exactly 3 in the narrow cone-angle case and typically 9 in the wide cone-angle case. And in the post-decomposition stage the branching factor is exactly two in the narrow-cone-angle case.

FIG. 36 is the version of narrow cone-angle backprojection that operates purely in the space domain. It is almost identical to FIG. 35 except for the following differences. The FFT and IFFT do not exist in FIG. 36 as there is no need to transform intermediate images between the hybrid space-Fourier and space domains. Furthermore the implementation of the blocks labeled “shear-adj” in the space-domain (FIG. 36) and hybrid-domain (FIG. 35) versions are different. While in the latter it is implemented by a pixel-wise multiplication in the former it is implemented by a shift-invariant 1D filtering operation.

2.4.5 Other Variations of Backprojection

There are typically two contexts in which backprojection is used:

-   1. To perform a direct, non-iterative reconstruction of an image     from tomographic projections. This typically involves some kind of     filtering and preprocessing of the projections followed by a     backprojection of those filtered projections to produce the     reconstructed image. We call this the FBP case. -   2. In conjunction with a reprojection operator such as in iterative     reconstruction where backprojection and reprojection operators are     applied multiple times. In this case it is often preferred that the     backprojection and reprojection operators are close-to-exact     mathematical adjoints of each other. We call this the RP-adjoint     case

The description in Sections 2.4.1-2.4.3 refers to the RP-adjoint case. In the FBP case the operations remain almost identical but since there is no adjointness constraint, the types of interpolators used can differ. Specifically the anterpolation operations (84)(85) are replaced by normal 3D backprojection interpolation operations for the appropriate geometry (Chapter 3.6 of [2]). There is an outer loop over the subset of views that interact with the kernel-stage image (i.e. the view-indices in the set

_(n)). The grid of the kernel-stage input image, sparsely sampled along the slow direction, is transformed to physical space by inverting the transformation derived in Sections 1.3.6(b)-(c),in order to compute the interpolation coordinates and weights.

Another difference is that the reprojection weights ω_(β,α,v) in (83) are combined with any weighting related to the specific backprojection method or geometry. Examples of the latter weights are the Feldkamp-Davis-Kress weights (Chapter 3.6 of [2]) for circular cone beam geometries and Katsevich weights [6] for helical cone-beam geometries. These two kinds of weights can typically be combined by taking their product.

3 Other Variations: Improved Physical Modeling

Real X-ray systems are better modeled with finite, rather than infinitesmal, detector and source widths. The previously described RP and BP methods are easily modified to accomodate this. There are two ways to model the finite detector width the beamlet approach or the integrating-detector approach. The finite source width, a.k.a finite focal spot, can be modeled using the beamlet approach. The methods can be mixed and matched. All approaches require merely a modification of the kernel-stage resampling operations.

3.1 Beamlet Modeling Along Detector Channel Coordinate u

As shown in FIG. 37A, consider the reprojection of a 2D image along a single ray. This ray has a fan-beam parameterization of view-angle β and fan-angle α, and therefore a parallel-beam parameterization (θ, t), computed by (44).

Recall from Section 1.3.6 and FIG. 14 (c-d) that in the fan-beam geometry, in the kernel stage, every ray is computed by interpolating from the 2D kernel-stage input image onto a set of samples that lie on the ray, in the frame of the kernel-stage input image, and then summing those sampled values. The location of these samples in the frame of the kernel-stage input image is {(m_(f)=h^(β,α)[m_(s)], m_(s)): m_(s)∈

} where h^(β,α)[m_(s)] is specified by (57)-(60). Sections 1.3.6(b)-(c) derived the transformation of these samples from the frame of the input image y(x₁, x₂) in physical space to that of the kernel-stage input image. So the location of these samples in physical space is computed by inverting the transformation derived in Sections 1.3.6(b)-(c).FIG. 37A depicts this ray and, by circles, the location of the samples along it in physical space

The ray connects the source to an infinitesmally small detector. For this particular ray the fast direction is x₁ and the slow direction is x₂. The slow direction sample spacing is denoted by Δ_(s). Note that the ray intersects the x_(z) axis at t/cos θ and the spacing along s₁ of the sample points along the ray is Δ_(s) tan θ. So the physical coordinates of the set of sample points in the ray are {(m_(s)Δ_(s) tan θ, m_(s)Δ_(s)): m_(s)=−N_(s), −N_(s)+1, . . . , +N_(s)}.

3.1.1 Finite Detector Width

In order to model the finite detector width we want to perform the summation not along a set of samples along an infinitesmally thin line but rather incorporate the finiteness of the detector width. FIG. 37B illustrates the geometry of the finite detector width. Note that unlike in FIG. 37A the detector has a finite detector width of Δ_(DET). Rather than computing the 1D integral along the line from the source to an infinitesmally small detector, we want to compute the 2D integral in the cross-hatched triangular region that connects the source and the edges of the detector and divide by Δ_(DET).

Suppose we fix the location of the source and detector then this scaled 2D integral is as follows:

$\begin{matrix} {\frac{1}{\Delta_{DET}}{\int_{x_{2} = x_{2}^{MIN}}^{x_{2}^{MAX}}{\int_{x_{1} = {x_{1}^{MIN}{(x_{2})}}}^{x_{1} = {x_{1}^{MAX}{(x_{2})}}}{{f\left( {x_{1},x_{2}} \right)}{dx}_{1}{dx}_{2}}}}} & (86) \end{matrix}$

The limits of the outer integral x₂ ^(MIN) and x₂ ^(MAX) are as shown in FIG. 37B, and the limits of the inner integral for a fixed x₂, i.e. x₁ ^(MIN) (x₂) and x₁ ^(MAX)(x₂) is shown in the inset image. Here we are making the slightly simplifying assumption that the object is zero close to the detector so we do not have to account for triangular region near the detector that is left out of the integral. Let us refer to x₁ ^(MAX)(x₂)−x₁ ^(MIN) (x₂) as the integration width.

FIGS. 37B-C shows how x₁ ^(MIN) (x₂) and x₁ ^(MAX) (x₂) are computed. In order to compute them we define r, the distance from the point (x₁, x₂) to the source, as shown in FIG. 37C. For a point (x₁, x₂) that lies on a ray whose parallel-beam parameters are (θ, t), the distance to the source is computed by first rotating the frame of reference by θ. Let the coordinates of the point in the rotated frame be (x_(1, r), x_(2,r)) where x_(1, r)=x₁ cos θ+x₂ sin θ and x_(2,r)=−x₁ sin θ+x₂ cos θ. Now it is easy to see that the distance to the source is r=x_(2,)r+√{square root over (D²−x_(1,r))}. Let d_(SD) be the distance from the source to the detector along the ray that passes through (x₁, x₂).

Going back to FIG. 37B, let r_(FRAC)=π/d_(SD) be the fraction of the distance of the point (x₁, x₂) from the source to the detector. Then it is easy to see that the width of the triangle at the point (x, x₂) in FIG. 37B, in the direction perpendicular to the ray, is r_(FRAC)Δ_(DET). Consequently the width of the shaded triangle along the x coordinate is r_(FRAC)Δ_(DET)/cos θ since 0 is the angle between the ray and the vertical x₂ axis. Defining w_(DET)(x₂)

r_(FRAC)Δ_(DET)/cos θ, we obtain x₁ ^(MIN) (x₂)=x₁−w_(DET)(x₂)/2 and x₁ ^(MAX)(x₂)=x₁+w_(DET)(c₂)/2

Recall that in the case of the infinitesmal detector width, the kernel-stage resampling operation is to interpolate from the kernel-stage input image I^(d) onto samples that lie on the ray and whose coordinates depend on the fan beam parameters (β, α) as specified in (43): g_(β,α)[m_(s)]=I_(d)[h^(β,α)[m_(s)], m_(s)]. The equivalent expression for the finite-detector width case is as follows:

g _(β,α) ^(d)[m _(s)]=∫_(x) _(f) _(=h) _(β,α) _([m) _(s) _(]−w) _(DET) _((β,α,m) _(s) _(/2) ^(x) ^(f) ^(=h) ^(β,α) ^([m) ^(s) ^(]−w) ^(DET) ^((β,α,m) ^(s) ^(/2) I ^(s)[x _(f) ,m _(s)]dx _(f)  (87)

Here rather than simply evaluate the interpolation at a single sample, integration along x^(f) over a width of w_(DET) is performed. Note that in the expression I^(d)[x_(f), m_(s)] the first coordinate is a continuous variable and so we are using the interpolation shorthand along x_(f). Each output sample has a different integration width i.e w_(DET)(β, α, m_(s)) is a function of the view-angle, fan-angle and slow coordinate. When combined with the subsequent summation over m_(s), this corresponds to approximating the double integral over the shaded triangle in FIG. 37B by the sum of the integrals (87) over strips indexed by m_(s). We call these inner strip integrals.

One way to discretize the integral along x_(f) in (87) is to interpolate onto multiple adjacent points (which we call “beamlet samples”) within the integration width, and perform a weighted average over them, such as prescribed by the Gaussian quadrature integral approximation rule [5]:

$\begin{matrix} {{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack} = {\sum\limits_{k = 1}^{K}{\zeta_{k}{I^{d}\left\lbrack {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} + {\delta_{k}{w_{DET}\left( {\beta,\alpha,m_{s}} \right)}}},m_{s}} \right\rbrack}}}} & (88) \end{matrix}$

Here the offsets {δ_(k)} and weights {ζ_(k)} depend on the order of the Gaussian quadrature approximation. For example for the third order approximation, K=5 and the offsets {δ_(k)} and weights {ζ_(k)} are 0.5×[−0.90618, −0.538469, 0, 0.538469, 0.90618] and [0.236927, 0.478629, 0.568889, 0.478629, 0.236927] respectively.

When these multiple sets of adjacent beamlet samples are transformed from the coordinate system of the kernel-stage input image to the coordinate system of the RP input image, they are as shown by the black dots in FIG. 37D. Rather than one set of samples that lie on a ray as shown in FIG. 14C, we interpolate onto a set of K lines that diverge from the point-source to a single finite-width detector. The points at which the lines intersect the detector are known as detectorlets. The number and location of the detectorlets depends on the Gaussian quadrature scheme used. And the lines themselves connecting the source to the detectorlets are known as beamlets.

If this scheme were naively implemented it would increase the cost of the kernel-stage interpolation by the factor K of the number of beamlets used. To avoid this cost increase, the weighted averaging over beamlets is integrated into the interpolation kernel. Recall the expression for the spline FIR operation (5) in the case of 1D interpolation along the fast coordinate direction of a 2D image. Let the kernel-stage input image be I^(d)[m_(f), m_(s)] and its spline transform along the fast coordinate direction be Î^(d)[m_(f), m_(s)], then the expression to evaluate the value of I^(d)[x_(f), m_(s)], where x_(f)∈

R is I^(d)[x_(f), m_(s)]=Σ_(m) _(f) ψ(x_(f)−m_(f))ŷ^(d)[m_(f), m_(s)]. Incorporating this into (88), the equation for kernel-stage fast-direction interpolation for an infinitesmal detector width (43), we get:

$\begin{matrix} {{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack} = {{I^{d}\left\lbrack {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s}} \right\rbrack} = {\sum\limits_{m_{f}}{{\psi \left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}} \right)}{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}}}}} & (89) \end{matrix}$

Here ψ is the interpolation basis function.

The equivalent expression for the case of the finite detector width is derived by combining (5) with (88):

$\begin{matrix} {{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack} = {\sum\limits_{k = 1}^{K}{\zeta_{k}{I^{d}\left\lbrack {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} + {\delta_{k}{w_{DET}\left( {\beta,\alpha,m_{s}} \right)}}},m_{s}} \right\rbrack}}}} & {{~~~~~~~~~~~~~~}(90)} \\ {= {\sum\limits_{k = 1}^{K}{\zeta_{k}{\sum\limits_{m_{f}}{\psi\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} + {\delta_{k}{w_{DET}\left( {\beta,\alpha,m_{s}} \right)}} -} \right.}}}}} & {(91)} \\ {\left. m_{f} \right){{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}} & \\ {= {\sum\limits_{m_{f}}{{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}{\sum\limits_{k = 1}^{K}{\zeta_{k}{\psi\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} +} \right.}}}}}} & {(92)} \\ \left. {{\delta_{k}{w_{DET}\left( {\beta,\alpha,m_{s}} \right)}} - m_{f}} \right) & \; \end{matrix}$

Define a new basis function to be a function of both the output coordinate x and the integration width w as follows:

$\begin{matrix} {{\hat{\psi}\left( {x,w} \right)} = {\sum\limits_{k = 1}^{K}{\zeta_{k}{\psi \left( {x + {\delta_{k}w}} \right)}}}} & (93) \end{matrix}$

Then (92) becomes:

$\begin{matrix} {{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack} = {\sum\limits_{m_{f}}{{\hat{\psi}\left( {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}},{w_{DET}\left( {\beta,\alpha,m_{s}} \right)}} \right)}{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}}}} & (94) \end{matrix}$

Comparing (94), the interpolation formula for an extended detector, to (89), the formula for an infinitesmal detector, we see that the only change is that the original interpolation basis function ψ has been replaced by a modified basis function b that is now also a function of the integration width W_(DET). Both ψ and {circumflex over (ψ)} can be stored in look-up tables, and the support of b is typically only slightly longer than that of φ so the cost of performing the fast-direction interpolation only increases slightly, instead by a factor of K.

3.1.2 Finite Focal Spot

Similarly to modeling the finiteness of the detector width, the finiteness of focal spot size of the source can also be modeled. FIG. 37E depicts how the integration widths for finite focal spot modeling are computed for a finite focal spot and a single infintesmal detectorlet.

Similarly to the finite detector width case we use an approximation to compute the 2D integral in the triangle connecting the point detector and source with finite width Δ_(SRC). We do so by incorporating an integration width into the fast-direction interpolation. Just like in the finite detector width case, we approximate this 2D integral as the sum of strip integrals indexed by m_(s). There are a couple of crucial differences with the finite detector width case: (i) The integration width of the strip integrals increases the closer the strip is to the source, and (ii) the source is assumed to be oriented perpendicular to the line from the source to isocenter (not perpendicular to the ray).

From (i) it follows that w_(SRC)(x₁, x₂)=(1−r_(FRAC)(x₁, x₂))Δ_(SRC). And from (ii) it follows that the inclination of the source is β (the fan-beam view-angle) not θ (the parallel-beam view-angle). Consequently the divisor in computing the effective integration width along the fast direction is cos(β) not cos(θ) i.e.

w _(SRC)(x ₁ ,x ₂)=(1−r _(FRAC)(x ₁ ,x ₂))Δ_(SRC)/cos(β)  (95)

Using the beamlet method to approximate this integral then, when the beamlets are transformed to the coordinate system of the RP kernel-stage input image, they are as shown in FIG. 37F. The beamlet samples, shown by black dots, lie on lines that converge on the infinitesmally small detector from the finite-width source. The locations of the intersections of the beamlets with the source are called sourcelets. The equation for sourcelet interpolation is a straightforward modification of the detectorlets equation (94):

$\begin{matrix} {{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack} = {\sum\limits_{m_{f}}{{\hat{\psi}\left( {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}},{w_{SRC}\left( {{x_{1}\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s}} \right)},{x_{2}\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s}} \right)}} \right)}} \right)}{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack}}}} & (96) \end{matrix}$

Here {circumflex over (ψ)} is the modified basis function defined in (93), h^(β,α)[m_(s)] is the location of the samples along the ray as defined in (57)-(60), and x₁(m_(f), m_(s)) and x₂(m_(f), m_(s)) are the coordinates of the sample with index (m_(f), m_(s)).

Typically finite focal spot modeling is combined with finite detector width modeling. So in this case the beamlets connect each of the K_(SRC) sourcelets to each of the K_(DET) detectorlets and the single summation in (90) becomes a double summation over the sourcelets and detectorlets. The integration basis function is modified similarly to be a function of three variables {circumflex over (ψ)}(x, w_(SRC), w_(DET)) to make the fast-direction interpolation similar to (94).

The taps of the filter used to perform the interpolation, i.e., samples of {circumflex over (ψ)}, can be saved in a lookup table, or computed on the fly, or some combination of the two—eg. saved in sparse lookup table in combination with a cheap on the fly computation.

3.2 Beamlet Modeling Along Detector Row Coordinate v

Section 3.1 describes the modeling of the finite detector width and finite focal spot for the 2D fanbeam geometry. In the case of the 3D conebeam imaging geometry this modeling needs to be applied along both the detector coordinate u and the row coordinate v. This can be done in a separable manner by applying the fanbeam-type modeling as is during the fast-direction interpolation step and then applying a similar modeling during the z-direction interpolation step.

Recall, from Section 2.2.2(d), that during the fast-direction interpolation, every z-slice of the kernel-stage input image is identically subject to the fanbeam fast-direction interpolation step. So, in order to incorporate the modeling of a finite detector width and finite focal spot in the u direction we simply apply the fan-beam geometry beamlet modeling, from Section 3.1, identically to every z-slice.

The output of this step is an image volume g₁[n_(α,β), m_(s), m_(z)]. Every 2D slice of this volume g₁[n_(α,β), :, :], when transformed to the coordinate system of y the input image to the whole reprojector corresponds to a plane that passes through the center of the source and the detector panel as shown in FIG. 38A. FIGS. 38A-B show a side view cut through the geometry and detector panel. They are oriented perpendicular to the inplane views depicted in FIG. 37.

Recall from Section 2.2.2(d) and FIG. 20 that the second step of kernel-stage filtering is interpolation along the z coordinate. FIG. 38A depicts z-direction interpolation combined with finite detector width modeling, similarly to how FIG. 37B depicts fast direction interpolation combined with finite detector width modeling. Rather than model the ray as a 1D line integral between an infinitesmal source and an infinitesmal detector we approximate the 2D integral in the shaded triangle that connects an infinitesmal source with a detector whose diameter is Δ_(DET). The 2D integral is formulated as the sum over inner strip integrals similar to (87). Recall that the inner strip integrals are indexed by m_(s) and each strip is centered on a sample that lies on the ray if it were from an infinitesmal source to an infinitesmal detector. One such sample is shown by the dot. The height of the shaded triangle at the location this sample, i.e. the range of the inner strip integral, is w_(DET-V). r_(FRAC) is the same as in the fan-beam case i.e. it is distance of a point from a source when projected onto the x₁-x₂ plane, as a fraction of the source-to-detector distance. So r_(FRAC) ranges from 0.0 (at the source, at the left hand side of the subfigure) to 1.0 (at the detector, at the right hand side of the subfigure).

FIG. 38B depicts z-direction interpolation combined with finite focal spot modeling, similarly to how FIG. 37E depicts fast direction interpolation combined with finite focal spot modeling. Rather than model the ray as a 1D line integral between an infinitesmal source and an infinitesmal detector we approximate the 2D integral in the shaded triangle that connects an infinitesmal detector with a source whose diameter is Δ_(SRC). The 2D integral is again approximated by the sum of inner strip integrals similar to (87). The height of the shaded triangle at the location of the sample shown by the dot, i.e. the range of the inner strip integral, is w_(SRC-V).

It is easy to see from FIG. 38A that w_(DET-V) is proportional to r_(FRAC) i.e. w_(DET-V)=r_(FRAC)Δ_(DET). From FIG. 38B it is easy to see that the relationship of w_(SRC-V) to r_(FRAC) is w_(SRC-V)=Δ_(SRC)(1−r_(FRAC)). Using the fact that r_(FRAC)=w_(DET-V)/Δ_(DET)=1−(w_(SRC-V)/Δ_(SRC)) we derive the equations relating w_(SRC-V) and w_(DET-V):

$\begin{matrix} {w_{{SRC} - V} = {{\Delta_{SRC}\left( {1 - r_{FRAC}} \right)} = {{\Delta_{SRC}\left( {1 - \frac{w_{{DET} - V}}{\Delta_{DET}}} \right)}\overset{\Delta}{=}{w_{\det\rightarrow{src}}\left( w_{{DET} - V} \right)}}}} & (97) \end{matrix}$

One way to incorporate both finite focal spot and finite detector width modeling into the z interpolation step at the same time is to use the beamlets method suggested in Section 3.1.2. It prescribes replacing the interpolation basis function ψ with a beamlet modified basis function {circumflex over (ψ)}(x, w_(SRC-V), w_(DET-V)). If the values of the beamlet-modified basis function were stored in a look-up table it would appear that it would need to be a 3D table. But because of the affine relationship between w_(SRC-V) and w_(DET-V) the second two coordinates can be collapsed into one i.e., for a fixed x and w_(DET-V) the value of {circumflex over (ψ)} will not need to be known at a range of w_(SRC-V) but only for w_(SRC-V) as defined in (97). So the domain of (w_(DET-V), w_(SRC-V)) is collapsed from 2D to a 1D manifold.

So when computing the lookup table, rather than computing a 3D table that is a discretization of {circumflex over (ψ)}(x, w_(DET-V), w_(SRC-V)): E_(3D) [n_(x), n_(wd), n_(ws)]

{circumflex over (ψ)}(n_(x)Δ_(x), n_(wd)Δ_(wd), n_(ws)Δ_(ws)) we only need compute the following 2D table E_(2D) [n_(x), n_(wd)]

{circumflex over (ψ)}(n_(x)Δ_(x), n_(wd)Δ_(wd), w_(det→src)(n_(wd)Δ_(wd))) where w_(det→src) defined in (97) specifies the affine relationship between w_(DET-V) and w_(SRC-V).

3.2.1 Adjoint

Recall from Section 2.4 that backprojection requires the use of the adjoints of the operators used in reprojection. The adjoint expressions for sourcelet and detectorlet modeling are derived from their respective forward equations are derived by reversing the forward sourcelet and detector equations (96) and (94).

The adjoint of detectorlet modeling is

$\begin{matrix} {{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack} = {\sum\limits_{\beta,\alpha}{{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack}{\hat{\psi}\left( {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}},{\omega_{DET}\left( {\beta,\alpha,m_{s}} \right)}} \right)}}}} & (98) \end{matrix}$

And the adjoint of sourcelet modeling is

$\begin{matrix} {{{\hat{y}}^{d}\left\lbrack {m_{f},m_{s}} \right\rbrack} = {\sum\limits_{\beta,\alpha}{{g_{\beta,\alpha}^{d}\left\lbrack m_{s} \right\rbrack}{\hat{\psi}\left( {{{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack} - m_{f}},{\omega_{SRC}\left( {{x_{1}\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s}} \right)},{x_{2}\left( {{h^{\beta,\alpha}\left\lbrack m_{s} \right\rbrack},m_{s}} \right)}} \right)}} \right)}}}} & (99) \end{matrix}$

In each case every sample of every ray that is mapped to a kernel stage input image g_(β,α) ^(d)[m_(s)] is mutliplied by a scalar weight {circumflex over (ψ)}( . . . ) and accumulated into the kernel stage image

3.3 Integrating Detectors

Instead of modeling finite-width detectors using detectorlets where the values of multiple adjacent samples are weighted and averaged as explained in Section 3.1.1, we now describe an alternative preferred embodiment in which the 2D integral over the shaded triangle in FIG. 37B or FIG. 38A can be evaluated more accurately. Sections 3.3.1-3.3.2 derive the method and Section 3.3.4 specifies exactly how it is used in the Kernel stage of the RP methods

3.3.1 Incorporating Integration into 1D Resampling

Suppose we are given a 1D discrete signal y^(d)[n] that are samples of a continuous-domain signal y(t) and an ordered set of output coordinates {s_(m)}_(m=1, . . . ,M). We want to compute an output signal g[m]=∫_(t=s) _(m) ^(s) ^(m) ⁺¹y(t)dt for m=0, 1, . . . , M−1.

Suppose y(t) lies in the space of spline basis functions i.e., y(t)=Σ_(n)ŷ[n]ψ(t−n) where ψ(t) is the spline basis function of some order. We can recover ŷ from y^(d) by performing a spline transform, as explained in Section 1.1.4. Define h[m]=∫_(t=−∞) ^(s) ^(m) y(t)dt. Then

g[m]=h[m+1]−h[m]  (100)

Consequently

${h\lbrack m\rbrack} = {{\int_{t = {- \infty}}^{s_{m}}{\sum\limits_{n}{{\hat{y}\lbrack n\rbrack}{\psi \left( {t - n} \right)}{dt}}}} = {{\sum\limits_{n}{{\hat{y}\lbrack n\rbrack}{\int_{t = {- \infty}}^{s_{m}}{{\psi \left( {t - n} \right)}{dt}}}}} = {\sum\limits_{n}{{\hat{y}\lbrack n\rbrack}{\int_{t^{\prime} = {- \infty}}^{s_{m} - n}{{\psi \left( t^{\prime} \right)}{dt}^{\prime}}}}}}}$

Denoting by {tilde over (ψ)} the integrated version of the basis function i.e.

{tilde over (ψ)}(t)=∫_(t′=−∞) ^(t)ψ(t′)dt′  (101)

then

$\begin{matrix} {{h\lbrack m\rbrack} = {\sum\limits_{n}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}} & (102) \end{matrix}$

3.3.2 Handling the Non-Compact Support of {tilde over (ψ)}

For a cubic spline ψ(t) has a support of (−2, +2). Consequently {tilde over (ψ)}(t) has a support of (−2, +∞). This seems like it would make the computation much less efficient but this can be efficiently dealt with as follows. For the rest of this section we will assume that ψ is a cubic spline but the method can be generalized to other basis functions.

Note that {tilde over (ψ)}(t) is constant valued for t>=2. Let this value be denoted {tilde over (ψ)}(∞). So {tilde over (ψ)}(x)≠0 and {tilde over (ψ)}(x)≠{tilde over (ψ)}(∞) if and only if x∈(−2, +2). Consequently

({tilde over (ψ)}(s _(m) −n)≠0)&({tilde over (ψ)}(s _(m) −n)≠0)⇔((s _(m) −n)∈(−2,+2)  (103)

⇔((n−s _(m))∈(−2,+2)  (104)

((n−s _(m))>−2)&((n−s _(m))<+2)  (105)

(n>(s _(m)−2))&(n<(s _(m)+2))  (106)

s _(m) ∈

,n∈

⇔n∈{n _(ST)(s _(m)),n _(ST)(s _(m))+1,  (107)

n _(ST)(s _(m))+2,n _(ST)(s _(m))+3}  (108)

where we define n _(ST)(m)

└s _(m)┘−1  (109)

So the sum (102) can be broken up as follows:

$\begin{matrix} {{h\lbrack m\rbrack} = {{\sum\limits_{n = {- \infty}}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}} & {{~~~~~~~~~~~~~}(110)} \\ {= {{\sum\limits_{n = {- \infty}}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}} & {(111)} \end{matrix}\quad$

We break up the sum this way as we know, from (108)-(109), that the only four indices n for which {right arrow over (ψ)}(s_(m)−n) will have a value that is neither zero nor ψ(∞) is {n_(ST)(m), n_(ST)(m)+1, . . . , n_(ST)(m)+3}.

Since we are ultimately only concerned with g[m]=h[m+1]−h[m], let us consider special cases of adjacent s_(m). In each case we want to show that our output value depends on a finite sum rather than an infinite sum.

-   -   If s_(m) and s_(m+1) lie within the same integer interval i.e.         for some P∈         , P≤s_(m)<s_(m+1)<(P+1):

${h\lbrack m\rbrack} = {{\sum\limits_{n = 0}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}$ and ${h\left\lbrack {m + 1} \right\rbrack} = {{\sum\limits_{n = 0}^{{n_{ST}{({m + 1})}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{({m + 1})}}}^{{n_{ST}{({m + 1})}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m + 1} - n} \right)}}}}$

Since s_(m) and s₊₁ lie in the same integer interval n_(ST)(m)=n_(ST)(m+1). So when computing g[m]=h[m+1]−h [m] the first sums cancel and we get the following expression which consists of finite sums:

${g\lbrack m\rbrack} = {{\sum\limits_{n = {n_{ST}{({m + 1})}}}^{{n_{ST}{({m + 1})}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m + 1} - n} \right)}}} - {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}$

-   -   If s_(m) and s_(m+1) lie in different integer intervals then the         first sums do not cancel exactly so

$\begin{matrix} {{g\lbrack m\rbrack} = {{h\left\lbrack {m + 1} \right)} - {h\lbrack m\rbrack}}} \\ {= {{{\overset{\sim}{\psi}(\infty)}\left( {{\sum\limits_{n = 0}^{{n_{ST}{({m + 1})}} - 1}{\hat{y}\lbrack n\rbrack}} - {\sum\limits_{n = 0}^{{n_{ST}{(m)}} - 1}{\hat{y}\lbrack n\rbrack}}} \right)} + {\sum\limits_{n = {n_{ST}{({m + 1})}}}^{{n_{ST}{({m + 1})}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m + 1} - n} \right)}}}}} \\ {{- {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}} \end{matrix}\quad$

It turns out that the exact form of this expression differs if {s_(m)} is an increasing or decreasing sequence, but we still get finite sums. Putting both cases together we get the following expression for g[m]=h[m+1]−h[m]=

$\begin{matrix} {{\sum\limits_{n = {n_{ST}{({m + 1})}}}^{{n_{ST}{({m + 1})}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m + 1} - n} \right)}}} - {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}} & {\mspace{11mu} (112)} \\ {+ \left\{ \begin{matrix} {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{({m + 1})}} - 1}{\hat{y}\lbrack n\rbrack}} & \begin{matrix} {{if}\mspace{14mu} {n_{ST}\left( {m +} \right.}} \\ {\left. 1 \right) > {n_{ST}(m)}} \end{matrix} \\ {- {\sum\limits_{n = {n_{ST}{({m + 1})}}}^{{n_{ST}{(m)}} - 1}{\hat{y}\lbrack n\rbrack}}} & \begin{matrix} {{if}\mspace{14mu} {n_{ST}\left( {m +} \right.}} \\ {\left. 1 \right) < {n_{ST}(m)}} \end{matrix} \\ 0 & \begin{matrix} {{if}\mspace{14mu} {n_{ST}\left( {m +} \right.}} \\ {\left. 1 \right) = {n_{ST}(m)}} \end{matrix} \end{matrix} \right.} & {\mspace{85mu} (113)} \end{matrix}$

3.3.3 Interpolation with Integrating Detectors

Putting together the pieces from the previous sections, we lay out the whole procedure to perform interpolation with integrating detectors on a 1D input signal y to produce a 1D output signal g.

First we compute {h[0], h[1], . . . , h[M−1]} efficiently as follows. We need to keep track of if adjacent s_(m)'s lie in the same interval or not. Let us denote the first sum by h_(∞)[m]i.e. h_(∞)[m]=Σ_(n=−∞) ^(n) ^(ST) ^((m+1)−1)ŷ[n]{tilde over (ψ)}(⇄)

-   -   For m=0 explicitly compute h_(∞)[m] and add in the normal         four-tap summation to get h[m] i.e.

$\begin{matrix} {{h\lbrack 0\rbrack} = {{h_{\infty}\lbrack 0\rbrack} + {\sum\limits_{n = {n_{ST}{(0)}}}^{{n_{ST}{(0)}} + 3}{{\hat{y}\lbrack n\rbrack}\overset{\sim}{\psi}\left( {s_{0} - n} \right)}}}} & (114) \end{matrix}$

-   -   For r>0, if s_(m) lies in the same integer interval as s_(m−1)         (i.e. └s_(m−1)┘=└s_(m)┘) then let h_(∞)[m]=h_(∞)[m−1] and add in         the four-tap summation as in (114):

$\begin{matrix} {{h\lbrack m\rbrack} = {{h_{\infty}\lbrack m\rbrack} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}} & (115) \end{matrix}$

-   -   For m>0, if s_(m) lies in a different integer interval than         s_(m−1) (i.e., └s_(m−1)┘≠└s_(m)┘) then increment h_(∞)[m] by the         difference:

$\begin{matrix} {\begin{matrix} {{{If}\mspace{14mu} s_{m}} > s_{m - 1}} & {{h_{\infty}\lbrack m\rbrack} = {{h_{\infty}\left\lbrack {m - 1} \right\rbrack} +}} \end{matrix}{\overset{\sim}{\psi}(\infty)}{\sum\limits_{n = {n_{ST}{({m - 1})}}}^{{n_{ST}{(m)}} - 1}{\hat{y}\lbrack n\rbrack}}} & (116) \\ {{{else}\mspace{14mu} {h_{\infty}\lbrack m\rbrack}} = {{h_{\infty}\left\lbrack {m - 1} \right\rbrack} - {{\overset{\sim}{\psi}(\infty)}{\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{({m + 1})}} - 1}{\hat{y}\lbrack n\rbrack}}}}} & (117) \end{matrix}$

and then add in the four-tap summation exactly as in (115).

After we perform the steps described in (114) to (117), that we call interpolation-integration. We then take a finite difference to compute the output g i.e., h [m]=g[m+1]−g[m]

In practice we apply the method above modified in the following two ways: (i) Since we are only concerned with the difference we can simplify things further by setting h_(∞)[0]=0 (ii) We don't simply take the integral but also scale by the

$\frac{1}{s_{m + 1} - s_{m}}$

i.e.

${g\lbrack m\rbrack} = {\frac{1}{s_{m + 1} - s_{m}}{\int_{t = s_{m}}^{s_{m + 1}}{{y(t)}{{dt}.}}}}$

This scaling changes the sign when s_(m+1)<s_(m). The only change to the algorithm is that the output is scaled by 1/(s_(m+1)−s_(m)).

Consider the cost of this method. Ignoring the update of h_(∞), the number of taps over which the summation is performed is the same as for the normal spline interpolation (5) that does not include the integration width. This is an improvement over detectorlet modeling in which the summation over detectorlets causes the filter length to be longer than the underlying spline filter. The cost of updating h, depends on the spacing of s_(m) but is typically a small fraction of the cost of the four-tap summation.

Since we deal with signals on finite domains, we can enforce the further restriction that ŷ[n] is negligible outside the set of indices n∈[0, . . . , N]. Combining it with h_(∞)[0]=0 we rewrite (111) as:

$\begin{matrix} {{h\lbrack m\rbrack} = {{\sum\limits_{n = 0}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}} & {\mspace{95mu} (118)} \\ {= {{\sum\limits_{n = 0}^{{n_{ST}{(0)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{(0)}}}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} +}} & (119) \\ {{\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}} & \; \\ {= {{h_{\infty}\lbrack 0\rbrack} + {\sum\limits_{n = {n_{ST}{(0)}}}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}}} + {\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}}}}} & (120) \\ {= {{\left( {A_{s}\hat{y}} \right)\lbrack m\rbrack} + {\left( {A_{f}\hat{y}} \right)\lbrack m\rbrack}}} & (121) \end{matrix}$ ${{where}\mspace{14mu} {\left( {A_{s}\hat{y}} \right)\lbrack m\rbrack}}\overset{\Delta}{=}{\sum\limits_{n = {n_{ST}{(0)}}}^{{n_{ST}{(m)}} - 1}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}(\infty)}\mspace{355mu} (122)}}$ ${{and}\mspace{14mu} {\left( {A_{f}\hat{y}} \right)\lbrack m\rbrack}}\overset{\Delta}{=}{\sum\limits_{n = {n_{ST}{(m)}}}^{{n_{ST}{(m)}} + 3}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} - n} \right)}\mspace{335mu} (123)}}$

So interpolation with integration detectors is the sum of two operators: a cumulative sum A_(s) and a filtering operator A_(f). 3.3.4 Kernel Stage: Separable Interpolation with Integrating Detectors

Recall from Section 2.2.2(a), that at the kernel stage we have an input image I_(L,n) and a set of indices

_(n), containing triplets of the form (m_(β), m_(α), m_(v)), that specify which rays are synthesized from this input image. This set is further partitioned into indices that share the same view-index i.e.

_(n)=

_(n,m) _(β) ₁ ∪

_(n,m) _(β) ₂ ∪ . . . ∪

,

The outer loop of the kernel stage iterates over these sets. Each set

_(n,m) _(β) contains triplet indices that all share the same view index m_(β). Separable interpolation is performed first in the fast direction and then the z direction.

Recall from (79), that for the infinitesmal detector case, the fast direction interpolation step computes a 2D image g₁ from the kernel-stage input image i.e., g₁[m_(s), m_(z)]=I_(L,n) ^(d)[h_(f) ^(β,α,v) [m_(s)], m_(s), m_(z)]. In the finite detector width case we apply the 1D procedure described in Section 3.3.3 to each 1D signal I_(L,n) ^(d)[·, m_(s), m_(z)], i.e. first an interpolation-integration step, followed by a finite differencing step.

For the interpolation-integration step we need to know not just the fan-angles α but the fan-angles of the detector boundaries {tilde over (α)}, which is specified in the geometry specification, similar to (73). Let the number of unique fan-angle indices in

_(n,m) _(β) be N_(α). It is always true that the set of fan-angle indices in

_(n,m) _(β) forms a contiguous set A

{α_(m) ₀ ₊₁, α_(m) ₀ ₊₂, . . . , α_(m) ₀ _(+N) _(α) } for some integer m₀. Then the number of detector bound aries is N_(α)+1 and let this set be defined as Ã

{{tilde over (α)}₁, {tilde over (α)}₂, . . . , α_(N) _(α) ₊₁}.

So we first perform a 1D interpolation-integration along the fast coordinate of the 3D volume I_(L,n) ^(d), which is of size N_(f)×N_(s)×N_(z), to produce a 3D volume g₃ of size (N_(α)+1)×N_(s)×N_(z). Here we use {tilde over (ψ)} the integrated version of the spline basis function. The set of interpolation-integration coordinates {s_(m)} to be applied to the 1D signal I_(L,m) ^(d)[·, m_(s), m_(z)] is {h_(f) ^(β,{tilde over (α)}) ^(n) ^(,v)[m_(s)]: n=1,2, . . . , N_(α)+1} (where h_(f) ^(β,α,v) is defined in (77)). So the m^(th) plane g₃[m, ·, ·], m∈{1, 2, . . . , (N_(α)+1)}, corresponds to {tilde over (α)}_(m) the m^(th) element of the set of detector boundary fan-angles.

Then we take the first order difference along the fast coordinate to complete the fast-direction step of the separable interpolation using integrating detectors. In order to compute the 2D array corresponding to fan-angle α_(m), that we denote as g₁ ^(α) _(m), we need to take the finite difference between the two appropriate adjacent planes of g₃. Comparing the sets A and A, specified above, we see that fan-angle α_(m) is dependent on the planes m-m₀ and m-m₀+1 i.e.,

g ₁ ^(α) ^(m) [m _(s) ,m _(z)]=g ₃[m-m ₀+1,m _(s) ,m _(z)]−g ₃[m-m ₀ ,m _(s) ,m _(z)]

We then apply the same procedure, interpolation-integration and finite-differencing, along the z coordinate of g₁ ^(α) _(m) to get g₂[m_(s)]. The set of coordinates to use when operating on the 1D signal g₁ ^(α) _(m) [m_(s), ·] is {h_(z) ^(β,α,v) ^(m) [m_(s)]: m=1, 2, . . . , N_(v)+1} where {tilde over (v)}₁, {tilde over (v)}₂, . . . , {tilde over (v)}_(N) _(v) ₊₁ are the set of row coordinates of the detector boundaries and h^(β,α, v) is defined in (77).

3.3.5 Adjoint

Recall from Section 2.4 that backprojection requires the use of the adjoints of the operators used in reprojection. In order to derive the adjoint of integrating-detector interpolation on a 1D input signal, we make use of (121) which expresses integrating-detector interpolation as the sum of two operators. Without loss of generality we assume henceforth that {tilde over (ψ)}(∞)=1 (which is the case for the B-spline basis).

Note that since the kernel-stage images upon which integrating-detector interpolation is performed are finite in extent and real-valued and the operators A_(s) and A_(f) are linear, the operations can be written as matrix-vector products with real-valued matrices. Given an operation represented by the multiplication of a vector by a real valued matrix A, the adjoint of this operation is represented by multiplication by the transpose matrix A^(T). So the output signal of integrating detector interpolation is h=(A_(s)+A_(f))f, and therefore the adjoint operator is (A_(s) ^(T)+A_(s) ^(T)).

The matrix representing the filtering operator is derived by translating the sum in (123) into matrix form:

${A_{f}\left\lbrack {m,n} \right\rbrack} = \left\{ \begin{matrix} {\overset{\sim}{\psi}\left( {s_{m} - n} \right)} & {{{for}\mspace{14mu} {n_{ST}(m)}} \leq n \leq {{n_{ST}(m)} + 3}} \\ 0 & {otherwise} \end{matrix} \right.$

And therefore the adjoint filtering matrix is A_(f) ^(T)[m, n]=A_(f)[n, m]

We then compute the adjoint of the cumulative sum part A_(s) ^(T). The formula for the matrix A_(s) is derived by translating the sum in (122) into matrix form:

$\begin{matrix} {{A_{s}\left\lbrack {m,n} \right\rbrack} = \left\{ \begin{matrix} {\overset{\sim}{\psi}\infty} & {{{for}\mspace{14mu} {n_{ST}(0)}} \leq n \leq {{n_{ST}(m)} - 1}} \\ 0 & {otherwise} \end{matrix} \right.} & (124) \end{matrix}$

FIG. 39A shows the matrix A, and FIG. 39B shows its transpose A_(f) ^(T). The entries in the hatched region are equal to a constant {tilde over (ψ)}(∞) which is exactly 1.0 when ψ is a spline basis function of {tilde over (ψ)} which is its integrated version. The entries in the non-hatched region are zero.

The formulation for A^(T), equivalent to (124), can be constructed by examining FIG. 39B. It is as follows. Given a matrix row index n, suppose there is an mr*s.t. n≥n_(ST)(m*−1) and n≤(n_(ST)(m*)−1) then A_(s) ^(T)(n, m)={tilde over (ψ)}(∞) for m≥m*.

FIG. 40 displays code that computes the application of the operator A_(s) ^(T) on an input signal h to produce the output signal ŷ(y_hat). It iterates backwards over the input variable m. Here the function n_(ST)(m) is as defined in (109) and is a monotonically increasing function of m. The for-loop over k is necessary for the case when n_(ST)(m−1)<n_(ST)(m)−1 (such as for m=m* in FIG. 39B. In the case when n_(ST)(m−1)=n_(ST)(m)−1 (such as for m=m₁ in FIGS. 39A-39B), then next_zh=zh+1 so the for-loop over k reduces to f [n_st (m)]=running_sum.

3.3.6 Integrating Detector+Finite Focal Spot

To model both a finite detector width and a finite focal spot at the same time we combine the beamlet-modeling of the finite focal spot described in Section 3.1.2 with the integrating detector method described in Section 3.3.3. Just like in the beamlets and integrating detectors case we reduce the computations to an interpolation type operation followed by a finite differencing.

Recall the geometry in FIG. 37F which shows the case of a finite focal spot and an infinitesmal detector. To enhance readability and to avoid multiple subscripts, let us focus on the 1D interpolation performed along a single row (indexed by m_(s)). The input 1D signal ŷ^(d) is the m_(s) ^(th) row of the kernel-stage input image and the output is a 1D signal g^(d)[m] of length M containing all the rows to be synthesized from this kernel-stage image for a single view-angle β. Let the integration width due to the finite focal spot, at the m^(th) output ray be w_(SRC) ^(m) (Equation (95), scaled to the coordinate frame of the kernel stage input image). We can express this case, with an infinitesmal detector and finite focal spot, mathematically as follows. This is derived similar to the infinitesmal source, finite detector width case (94) and reduced to 1D:

$\begin{matrix} {{g^{d}\lbrack m\rbrack} = {\sum\limits_{k}{\zeta_{k}{y\left( {t_{m} + {\delta_{k}w_{SRC}^{m}}} \right)}}}} & (125) \end{matrix}$

Here t_(m) is the 1D interpolation coordinate for the m^(th) ray for the infinitesmal source and infinitesmal detector case (ref (77)).

We incorporate the finite detector width via integrating detector modeling. For this we need the interpolation coordinates of the detector boundaries (which we get from the geometry specification similar to Section 3.3.4). Since there are M adjacent rays, there are M+1 detector boundary interpolation coordinates {s_(m)} (similar to Section 3.3.1). So we modify (125) by incorporating the integration between detector boundaries:

$\begin{matrix} {{g^{d}\lbrack m\rbrack} = {\sum\limits_{k}{\zeta_{k}{\int_{t = {s_{m} + {\delta_{k}w_{SRC}^{m}}}}^{s_{m + 1} + {\delta_{k}w_{SRC}^{m}}}{{y(t)}{dt}}}}}} & (126) \end{matrix}$

Similar to (102), let us define

${h_{k}\lbrack m\rbrack}\overset{\Delta}{=}{{\int_{t = {- \infty}}^{s_{m} + {\delta_{k}w_{SRC}^{m}}}{{y(t)}{dt}}}\overset{(102)}{=}{\sum\limits_{n}^{\;}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} + {\delta_{k}w_{SRC}^{m}} - n} \right)}}}}$ So ${g^{d}\lbrack m\rbrack} = {\sum\limits_{k}^{\;}{\zeta_{k}\left( {{h_{k}\left\lbrack {m + 1} \right\rbrack} - {h_{k}\lbrack m\rbrack}} \right)}}$

In order to be able to define g^(d)[m]=h[m+1]−h[m] similarly to (100), we define h[m] as follows

$\begin{matrix} {{h\lbrack m\rbrack}\overset{\Delta}{=}{{\sum\limits_{k}^{\;}{\zeta_{k}{h_{k}\lbrack m\rbrack}}} = {\sum\limits_{k}^{\;}{\zeta_{k}{\sum\limits_{n}{{\hat{y}\lbrack n\rbrack}{\overset{\sim}{\psi}\left( {s_{m} + {\delta_{k}w_{SRC}^{m}} - n} \right)}}}}}}} & {{~~~~~~~}(127)} \\ {= {\sum\limits_{n}^{\;}{{\hat{y}\lbrack n\rbrack}{\sum\limits_{k}{\zeta_{k}{\overset{\sim}{\psi}\left( {s_{m} + {\delta_{k}w_{SRC}^{m}} - n} \right)}}}}}} & {(128)} \end{matrix}\quad$

We can then define h in terms of a spline basis function that incorporates both beamlet modeling of the finite focal spot and integrating detector modeling of the finite detector width:

$\begin{matrix} {{h\lbrack m\rbrack} = {\sum\limits_{n}^{\;}{{\hat{y}\lbrack n\rbrack}{\overset{\_}{\psi}\left( {{s_{m} - n},w_{SRC}^{m}} \right)}}}} & (129) \\ {{{where}\mspace{14mu} {\overset{\_}{\psi}\left( {x,w} \right)}}\overset{\Delta}{=}{\sum\limits_{k}^{\;}{\zeta_{k}{\overset{\sim}{\psi}\left( {x + {\delta_{k}w}} \right)}}}} & \; \end{matrix}$

Comparing (129) to (102) we see that the expression for the incorporation of finite focal spot modeling is exactly the same as that for integrating detectors, except with a different modified basis function {circumflex over (ψ)} that incorporates both beamlet and integrating detector modeling.

So the 1D interpolation procedure is a straightforward application of the procedure in Section 3.3.3 with {circumflex over (ψ)} substituted in for {circumflex over (ψ)}. The procedure to apply this in the kernel stage is exactly as explained in Section 3.3.4 with {circumflex over (ψ)} substituted in for {circumflex over (ψ)}. And the adjoint application procedure is as explained in Section 3.3.5 with {circumflex over (ψ)} substituted in for {circumflex over (ψ)}.

One difference between {circumflex over (ψ)} and {circumflex over (ψ)}, is that the latter has a focal spot width parameter w. In practice b is precomputed and stored in a lookup table for the expected range of focal spot widths w. Every point evaluated in the kernel stage has an associated width wsRc, as seen in FIG. 37E, and that is the width parameter that is used in {circumflex over (ψ)}.

In this document we have described several preferred embodiments of fast algorithms for tomographic backprojection and reprojection. Starting with the 2D parallel-beam geometry (Section 1.2), we extended it to the 2D fan-beam (Section 1.3), 3D cone-beam (Section 2), and wide cone-beam geometries (Section 2.3). In Section 2.4 we describe the accompanying backprojection method and in Section 3 we describe a variation of the methods to incorporate more accurate physical modeling of tomographic systems.

APPENDICES

A Proof of RP based on the Shear-Scale Operator

We show that

$\begin{matrix} {{\int_{- \infty}^{\infty}{{f\left( {\begin{bmatrix} {\cos \; \theta} & {{- \sin}\; \theta} \\ {\sin \; \theta} & {\cos \; \theta} \end{bmatrix}\begin{bmatrix} t \\ s \end{bmatrix}} \right)}{ds}}} = {\frac{1}{\cos \; \theta}{\int_{- \infty}^{\infty}{{f\left( {\begin{bmatrix} {{1/\cos}\; \theta} & {{- \tan}\; \theta} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} t \\ s \end{bmatrix}} \right)}{ds}}}}} & (130) \end{matrix}$

For a fixed t, θ consider the line upon which this line-integral is performed, illustrated in FIG. 2B.

$\begin{matrix} {{{\overset{\rightarrow}{x}}_{R}(s)} = {{\begin{bmatrix} {t\; \cos \; \theta} \\ {t\; \sin \; \theta} \end{bmatrix} + {s\begin{bmatrix} {{- \sin}\; \theta} \\ {\cos \; \theta} \end{bmatrix}}}\overset{\Delta}{=}{{\overset{\rightarrow}{\upsilon}}_{0} + {s\; {\overset{\rightarrow}{\upsilon}}_{1}}}}} & (131) \end{matrix}$

Now consider a different parameterization of the same line {right arrow over (u)}₀+s{right arrow over (u)}₁ where {right arrow over (u)}₀ lies on the x₁

$\begin{matrix} {{{\overset{\rightarrow}{x}}_{S}(s)} = {{\begin{bmatrix} {{t/\cos}\; \theta} \\ 0 \end{bmatrix} + {s\begin{bmatrix} {{- \tan}\; \theta} \\ 1 \end{bmatrix}}}\overset{\Delta}{=}{{\overset{\rightarrow}{u}}_{0} + {s\; {\overset{\rightarrow}{u}}_{1}}}}} & (132) \end{matrix}$

The points {right arrow over (u)}₀ and {right arrow over (v)}₀ are shown in FIG. 2B.

Note that {right arrow over (v)}₁={right arrow over (u)}₁ cos θ and {right arrow over (v)}₀=({right arrow over (u)}₀+t sin θ{right arrow over (u)}₁):

$\begin{matrix} {{{\overset{\rightarrow}{u}}_{1}\cos \; \theta}\overset{(132)}{=}{{\begin{bmatrix} {{- \tan}\; \theta} \\ 1 \end{bmatrix}\cos \; \theta} = {\begin{bmatrix} {{- \sin}\; \theta} \\ {\cos \; \theta} \end{bmatrix}\overset{(131)}{=}{\overset{\rightarrow}{\upsilon}}_{1}}}} & (133) \\ \begin{matrix} {\left( {{\overset{\rightarrow}{u}}_{0} + {t\; \sin \; \theta \; {\overset{\rightarrow}{u}}_{1}}} \right)\overset{(132)}{=}{\begin{bmatrix} {{t/\cos}\; \theta} \\ 0 \end{bmatrix} + {t\; \sin \; {\theta \begin{bmatrix} {{- \tan}\; \theta} \\ 1 \end{bmatrix}}}}} \\ {= {t\begin{bmatrix} {\left( {{1/\cos}\; \theta} \right) - \left( {\sin \; \theta \; \tan \; \theta} \right)} \\ {\sin \; \theta} \end{bmatrix}}} \\ {= {{t\begin{bmatrix} \left. {{\left( {1 - {\sin^{2}\; \theta}} \right)/\sin}\; \theta} \right) \\ {\sin \; \theta} \end{bmatrix}}(135)}} \\ {= {t\begin{bmatrix} {\cos^{2}{\theta/\cos}\; \theta} \\ {\sin \; \theta} \end{bmatrix}}} \\ {= {t\begin{bmatrix} {\cos \; \theta} \\ {\sin \; \theta} \end{bmatrix}}} \\ {\overset{(131)}{=}{\overset{\rightarrow}{\upsilon}}_{0}} \end{matrix} & (134) \end{matrix}$

It follows that that {right arrow over (x)}_(R)(s)={right arrow over (x)}_(S)(sc₁+c₂) where c₁=cos θ and c₂=t sin θ:

$\begin{matrix} \begin{matrix} {{{\overset{\rightarrow}{x}}_{S}\left( {{s\; \cos \; \theta} + {t\; \sin \; \theta}} \right)}\overset{(132)}{=}{{\overset{\rightarrow}{u}}_{0} + {\left( {{s\; \cos \; \theta} + {t\; \sin \; \theta}} \right){\overset{\rightarrow}{u}}_{1}}}} \\ {= {\left( {{\overset{\rightarrow}{u}}_{0} + {t\; \sin \; \theta \; {\overset{\rightarrow}{u}}_{1}}} \right) + {s\; \cos \; \theta \; {\overset{\rightarrow}{u}}_{1}}}} \\ {\overset{({133 - 135})}{=}{{\overset{\rightarrow}{\upsilon}}_{0} + {s\; {{\overset{\rightarrow}{\upsilon}}_{1}(137)}}}} \\ {\overset{(131)}{=}{{\overset{\rightarrow}{x}}_{R}(s)}} \end{matrix} & (136) \end{matrix}$

Now we are ready to conclude the proof. Starting with the LHS of (130) we get:

$\begin{matrix} {{\int_{- \infty}^{\infty}{{f\left( {{t\begin{bmatrix} {\cos \; \theta} \\ {\sin \; \theta} \end{bmatrix}} + {s\begin{bmatrix} {{- \sin}\; \theta} \\ {\cos \; \theta} \end{bmatrix}}} \right)}\ {ds}}} = {\int_{- \infty}^{\infty}{{f\left( {{\overset{\rightarrow}{x}}_{R}(s)} \right)}{ds}}}} \\ {\overset{(137)}{=}{\int_{- \infty}^{\infty}{{f\left( {{\overset{\rightarrow}{x}}_{S}\left( {{s\; \cos \; \theta} + {t\; \sin \; \theta}} \right)} \right)}{ds}}}} \\ {\left\lbrack {r = {{{s\; \cos \; \theta} + {t\; \sin \; \theta \mspace{14mu} {and}\mspace{14mu} {dr}}} = {{ds}\; \cos \; \theta}}} \right\rbrack = {\frac{1}{\cos \; \theta}{\int_{- \infty}^{\infty}{{f\left( {{\overset{\rightarrow}{x}}_{S}(r)} \right)}{ds}}}}} \\ {\overset{(132)}{=}{\frac{1}{\cos \; \theta}{\int_{- \infty}^{\infty}{{f\left( {\begin{bmatrix} {{t/\cos}\; \theta} \\ 0 \end{bmatrix} + {r\begin{bmatrix} {{- \tan}\; \theta} \\ 1 \end{bmatrix}}} \right)}{dr}}}}} \\ {= {\frac{1}{\cos \; \theta}{\int_{- \infty}^{\infty}{{f\left( {\begin{bmatrix} {{1/\cos}\; \theta} & {{- \tan}\; \theta} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} t \\ r \end{bmatrix}} \right)}{dr}}}}} \\ {= {{RHS}\mspace{14mu} {of}\mspace{14mu} (130)}} \end{matrix}$

B Proofs of Shear and Shear-Scale Identities

Consider a sequence of two linear image transformation operators g=

₂

₁ f, where each operator

_(n)y({right arrow over (x)})=y(A_(n){right arrow over (x)}) and A_(n)∈

^(2×2) are matrices. Then we can decompose this into two steps as h=

₁f and g=

₂h. So h({right arrow over (x)})=y(A₁{right arrow over (x)}) and g({right arrow over (x)})=h(A₂{right arrow over (x)}). And g({right arrow over (x)})=h(A₂{right arrow over (x)})=y(A₁A₂{right arrow over (x)}) i.e.

g({right arrow over (x)})=(

₂

₁ f)({right arrow over (x)})=y(A ₁ A ₂ {right arrow over (x)})

Therefore

(α₂)

(α₁)=

(α₂+α₁) follows from the matrix identity:

${\begin{bmatrix} 1 & \alpha_{1} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & \alpha_{2} \\ 0 & 1 \end{bmatrix}} = \begin{bmatrix} 1 & {\alpha_{1} + \alpha_{2}} \\ 0 & 1 \end{bmatrix}$

The proof of

(α₁)

(α₂) . . .

(α_(n))=

(α₁+α₂+ . . . +α_(n)) follows trivially.

Likewise

(σ₁, σ₂)

(α)=

(σ₁, σ₂+α) follows from the matrix identity

$\begin{matrix} {{\begin{bmatrix} 1 & \alpha \\ 0 & 1 \end{bmatrix}\begin{bmatrix} \sigma_{1} & \sigma_{2} \\ 0 & 1 \end{bmatrix}} = \begin{bmatrix} \sigma_{1} & {\sigma_{2} + \alpha} \\ 0 & 1 \end{bmatrix}} & (138) \end{matrix}$

A special case of (138) is that

(σ₁, 0)

(α)=

(σ₁, α). Equation (138) says that when a shear is followed by a shear-scale the shear-parameters simply add and the scale parameter remains unchanged.

C Derivation of Periodic Sinc (Dirichlet Kernel) Interpolator

We show that multiplying the DFT of a signal by

${H\lbrack k\rbrack} = e^{\frac{i\; \tau \; 2\pi \; k}{N}}$

is equivalent to interpolating onto the continuous domain with a periodic sinc interpolator, delaying by a fractional shift τ and resampling. We start by computing the inverse DFT of the H[k]. Without loss of generality we are assuming that the signal and DFT length N=2M+1 is odd:

$\begin{matrix} {{h\lbrack n\rbrack} = {{\frac{1}{N}{\sum\limits_{k = {- M}}^{M}{{H\lbrack k\rbrack} \cdot e^{\frac{i\; 2\; \pi \; {kn}}{({{2M} + 1})}}}}} = {{\frac{1}{N}{\sum\limits_{k = {- M}}^{M}{e^{\frac{i\; {\tau 2}\; \pi \; k}{N}} \cdot e^{\frac{i\; 2\; \pi \; {kn}}{({{2M} + 1})}}}}} = {\frac{1}{N}{\sum\limits_{k = {- M}}^{M}e^{\frac{i\; 2\pi \; k}{N}{({n + \tau})}}}}}}} & (139) \end{matrix}$

We use the following property of the summation of exponentials:

$\begin{matrix} {{\sum\limits_{k = {- M}}^{M}a^{k}} = \frac{\left( {a^{M + 0.5} - a^{- {({M + 0.5})}}} \right)}{\left( {a^{0.5} - a^{- 0.5}} \right)}} & (140) \end{matrix}$

Using (140) to simplify (139), by using the substitution α=e^(iβ) where

$\beta = {\frac{2\pi}{N}\left( {n + \tau} \right)}$

we get:

$\begin{matrix} {{h\lbrack n\rbrack} = {{\frac{1}{N}{\sum\limits_{k = {- M}}^{M}e^{\frac{i\; 2\; \pi \; k}{N}{({n + \tau})}}}} = \frac{\sin \left( {\pi \left( {n + \tau} \right)} \right)}{N\; {\sin \left( {\frac{\pi}{N}\left( {n + \tau} \right)} \right)}}}} & (141) \end{matrix}$

So h[n]=ψ(n+τ) where ψ(x)=sin(πz)/(N sin(πx/N)) is the periodic Sinc (or Dirichlet kernel) interpolator. So multiplying the DFT of y by the DFT of h is equivalent, in the space-domain, to convolving y with h where h is the periodic Sinc interpolator, delayed by τ and sampled with a unit sample spacing. This is in turn equivalent to interpolating y using the periodic sinc interpolator and then sampling it on a sample grid delayed by r. This completes derivations and proofs in the Appendices.

FIG. 41 illustrates a system of the invention that includes an image reconstructor 10 that conducts reprojection and backprojection suitable for integrating detectors and addresses overlap of rays and voxels in image space. Image data is stored in mass storage 12. An operator console 14 is used to direct system operations, and a display 16 can display reconstructed images. A computer 20 coordinates system operations and data acquisition. During operation of the system, projection data of a subject under examination lying on an imaging table 22 (schematically represented but being movable within the center of a gantry 28) is acquired by operating an X-ray source 24 under control of an X-ray controller 26 while spinning the gantry 28 under control of a gantry motor controller 30, and moving the table 22 under control of a table motor controller 32, with the controllers being coordinated by the computer 20, instructed by commands given by an operator through the operator console 14. An integrating detector array 34 detects radiation passing through the subject. Detected electrical signals at the detector are digitized and transmitted to the image reconstructor 10 and computer 20, which stores reconstructed images in mass storage 12. After preprocessing and correction, projection data are derived from the detector data and fed to an iterative reconstruction module of the image reconstructor 10. The image reconstructor 10 can be a software module implementing the method of this invention and running on the computer 20, or a separate physical device, itself a computer running the software implementing a preferred method of the invention. Alternatively, the image reconstructor can be implemented in a combination of hardware, firmware, and software, including GPUs (graphical processing units), FPGAs, ASICS, circuit boards, and various electronic or electro-optical components.

FIG. 42 illustrates a general computer system 1400 that can perform the above methods and can serve as both the image reconstructor 10 and the computer 20 of FIG. 1. The system 1400 can represent such a computer in a computed tomography (CT) system, or other imaging system, or a processing device coupled with an imaging system for processing imaging data from an imagining system, and generating control signals such as acquisition parameter settings for an imaging system. The computer system 1400 may include an ordered listing of a set of instructions 1402 that may be executed to cause the computer system 1400 to perform any one or more of the methods or computer-based functions disclosed herein. The computer system 1400 may operate as a stand-alone device or may be connected to other computer systems or peripheral devices, e.g., by using a network 1410.

In a networked deployment, the computer system 1400 may operate in the capacity of a server or as a client-user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 1400 may also be implemented as or incorporated into various devices, such as a personal computer or a mobile computing device capable of executing a set of instructions 1402 that specify actions to be taken by that machine, including and not limited to, accessing the internet or web through any form of browser. Further, each of the systems described may include any collection of sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.

The computer system 1400 may include a memory 1404 on a bus 1420 for communicating information. Code operable to cause the computer system to perform any of the acts or operations described herein may be stored in the memory 1404. The memory 1404 may be a random-access memory, read-only memory, programmable memory, hard disk drive or any other type of volatile or non-volatile memory or storage device.

The computer system 1400 may include a processor 1408, such as a central processing unit (CPU) and/or a graphics processing unit (GPU). The processor 1408 may include one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, digital circuits, optical circuits, analog circuits, combinations thereof, or other now known or later-developed devices for analyzing and processing data. The processor 1408 may implement the set of instructions 1402 or other software program, such as manually-programmed or computer-generated code for implementing logical functions. The logical function or any system element described may, among other functions, process and/or convert an analog data source such as an analog electrical, audio, or video signal, or a combination thereof, to a digital data source for audio-visual purposes or other digital processing purposes such as for compatibility for computer processing.

The computer system 1400 may also include a disk or optical drive unit 1415. The disk drive unit 1415 may include a non-transitory computer-readable medium 1440 in which one or more sets of instructions 1402, e.g., software, can be embedded. Further, the instructions 1402 may perform one or more of the operations as described herein. The instructions 1402 may reside completely, or at least partially, within the memory 1404 and/or within the processor 1408 during execution by the computer system 1400. Accordingly, the data acquired by a scanner or imaging system and/or the numerical phantom data generated as described above may be stored in the memory 1404 and/or the disk unit 1415. The memory 1404 and the processor 1408 also may include non-transitory computer-readable media as discussed above. A “computer-readable medium,” “computer-readable storage medium,” “machine readable medium,” “propagated-signal medium,” and/or “signal-bearing medium” may include any device that includes, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.

Additionally, the computer system 1400 may include an input device 1425, such as a keyboard or mouse, configured for a user to interact with any of the components of system 1400. It may further include a display 1430, such as a liquid crystal display (LCD), a cathode ray tube (CRT), or any other display suitable for conveying information. The display 1430 may act as an interface for the user to see the functioning of the processor 1408, or specifically as an interface with the software stored in the memory 1404 or the drive unit 1415.

The computer system 1400 may include a communication interface 1436 that enables communications via the communications network 1410. The network 1410 may include wired networks, wireless networks, or combinations thereof. The communication interface 1436 to the network may enable communications via any number of communication standards, such as 802.11, 802.17, 802.20, WiMax, cellular telephone standards, or other communication standards.

Accordingly, the method and system may be realized in hardware, software, or a combination of hardware and software. The method and system may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. Such a programmed computer may be considered a special-purpose computer.

The method and system may also be embedded in a computer program, which includes features enabling the implementation of the operations described herein and which, when loaded in a computer system, is able to carry out these operations. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function, either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.

The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope of the present embodiments are to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.

While specific embodiments of the present invention have been shown and described, it should be understood that other modifications, substitutions and alternatives are apparent to one of ordinary skill in the art. Such modifications, substitutions and alternatives can be made without departing from the spirit and scope of the invention, which should be determined from the appended claims.

Various features of the invention are set forth in the appended claims. 

1. A method for forward projection in computed tomography (CT) to obtain output tomographic projections from a pixel image, the method comprising: providing the pixel image as an input image; performing digital image coordinate transformations on the input image to produce multiple intermediate-images, the parameters of one or more coordinate transformations being chosen such that Fourier spectral support of an intermediate-image being produced is modified so that a region of interest has a reduced extent along one or more coordinate direction and the intermediate-images can be represented with a desired accuracy by sparse samples; repeating said performing digital image coordinate transformations in a recursive manner, for a finite number of recursions, to produce additional intermediate-images of which one or more are sampled on a sheared Cartesian grid; and producing samples of the output tomographic projections by interpolation of the intermediate-images onto lines, curves or surface, and weighted summation of the data along lines, curves, or surfaces.
 2. The method of claim 1, wherein said producing, performing and aggregating are conducted in the space domain without any Fourier Transformations.
 3. The method of claim 1, wherein said performing is conducted in a hybrid space-Fourier domain with Fast Fourier Transforms and complementary inverse Fast Fourier Transforms being performed along one or more coordinate directions.
 4. The method of claim 3, wherein said performing executes 1D spline transforms along one or more coordinate axes of the input image.
 5. The method of claim 4, comprising executing a finite impulse response filtering along a fast coordinate direction, executing a discrete Fourier transform along a fast coordinate direction and executing a finite impulse response filtering along a slow coordinate with output produced on uniformly spaced coordinates with fractional spacing.
 6. The method of claim 1, wherein said performing executes wide cone-angle hierarchical partitioning such that at least one intermediate-image corresponds to a cell of restricted size in a domain of azimuthal-elevation angles and can be used to compute a 3D parallel beam projection parameterized by coordinate parameters that lie inside the cell.
 7. The method of claim 6, wherein a cell corresponding to one or more intermediate-images in a later recursion is of smaller extent than a cell corresponding to an intermediate-image in an earlier recursion.
 8. The method of claim 1, wherein the input image is first subjected to pre-decomposition by a fully spatial 3D rotation, an upsampling along a coordinate direction and a cropping along a coordinate axis to exploit spatial locality.
 9. The method of claim 1, wherein, during said repeating in a recursive manner, one or more of the digital coordinate transformations are performed independently on different planes of a 3D pixel array being operated upon.
 10. The method of claim 9, wherein, during one or more of the digital coordinate transformations, the output pixel value of one plane is computed independently of output pixel values in any other plane.
 11. The method of claim 1, wherein during said producing, a tomographic detector element of non-infinitesimal extent is emulated by filtering selected samples of an intermediate-image, so that said filtering has the combined effect of interpolation onto a set of diverging lines and weighted averaging of the values obtained by said interpolation.
 12. The method of claim 1, wherein said producing comprises emulating a non-infinitesimal extent of a tomographic detector element, or of both detector element and source, by processing selected samples of at least one intermediate-image by (i) forming a first 1D signal; (ii) applying a filter to the first 1D signal to produce a second 1D signal; (iii) applying a cumulative summation operation to the first 1D input signal to produce a third 1D signal by traversing the first 1D input signal and the third 1D signal in order of increasing index, and setting the third 1D signal value at a particular index to the sum of the third 1D signal at the previous index plus a selection between a sample from the first 1D signal or zero. (iv) adding the second 1D signal and the third 1D signal sample by sample to produce a fourth 1D signal; and (v) computing the differences between selected adjacent samples of the fourth 1D signal.
 13. The method of claim 1, wherein said producing comprises emulating a non-infinitesimal extent of a tomographic source by filtering selected samples of an intermediate-image, so that said filtering has the combined effect of interpolation onto a set of converging lines and weighted averaging of the values obtained by the interpolation.
 14. The method of claim 1 wherein the intermediate-images produce projection samples that correspond to lines in a 3D tomographic geometry whose angles of azimuth and angles of elevation differ, respectively, by no more than predetermined amounts, the amounts decreasing from one level of recursions to a next level of recursion.
 15. The method of claim 1, wherein said performing comprises decreasing a spatial extent of the transformed intermediate-images.
 16. The method of claim 10, wherein the sparse samples are produced from multiple intermediate-images by applying a combination of frequency selective filtering, modulation and interpolation.
 17. The method of claim 1, wherein said producing conducts an interpolation by consecutively applying 1D interpolation or 1D resampling on one or more coordinate directions. 